2. 数据的表示和运算

2.数据的表示和运算

文章目录

  • 2.数据的表示和运算
    • 2.1.1进位计数制
      • r进制计数法
      • 任意进制->二进制
      • 二进制<->八进制、十六进制
        • 二进制->八进制
        • 二进制->十六进制
        • 八进制->二进制
        • 十六进制->二进制
      • 各种进制的常见书写方式
      • 十进制->任意进制
        • 整数部分
        • 小数部分
      • 真值和机器数
    • 2.1.2 BCD码
      • 8421码
      • 余3码、2421码
    • 2.1.3 无符号整数的表示和运算
      • 无符号整数的表示
      • 无符号整数的加法
      • 无符号整数的减法
    • 2.1.4 有符号整数的表示和运算
      • 有符号整数的表示
      • 原码
      • 原码、补码、反码的转换
      • 补码
        • 补码的加法
        • 补码的减法
    • 2.1.5 移码
    • 2.1.6 原/反/补/移码特性对比
    • 2.1.7 定点小数
    • 2.2.0 奇偶校验码
    • 2.2.1 算术逻辑单元(ALU)
      • 作用、大致原理
      • 加法器的实现
    • 2.2.2 并行进位加法器
    • 2.2.3 补码加减运算器
    • 2.2.4 加减运算和溢出判断,标志位的生成
    • 2.2.5 定点数的移位运算
      • 算数移位
        • 原码的算术移位
        • 反码的算术移位
        • 补码的算术移位
      • 逻辑移位
      • 循环移位

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

原码、反码与补码之间的相互转换

IEEE 754 标准下的 float 的计算示例

浮点数编码

2.1.1进位计数制

r进制计数法

基数:每个数码位所用到的不同符号的个数,r进制的基数为r

二进制:0,1 //可使用两个稳定状态的物理器件表示;01对应逻辑真假,方便逻辑运算;方便使用逻辑门电路实现算术运算

八进制:0,1,2,3,4,5,6,7

十进制:0,1,2,3,4,5,6,7,8,9

十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D, E,F

任意进制->二进制

位权:rn

KnKn-1…K2K1K0K-1K-2…K-m

=Kn * rn + Kn-1 * rn-1 + … + K2 * r2 +K1 * r1 + K0 * r0 +K-1 * r-1 + K-2 * r-2 + … +K-m * r-m

二进制<->八进制、十六进制

二进制->八进制

3位一组,不足的地方补0,每组转换成对应的八进制符号

二进制->十六进制

4位一组,不足的地方补0,每组转换成对应的八进制符号

八进制->二进制

每位八进制对应3位二进制

十六进制->二进制

每位八进制对应4位二进制

各种进制的常见书写方式

二进制:(…)2 (…)B

八进制:(…)8 (…)O 0(…)

十进制:(…)10 (…)D

十六进制:(…)16 (…)H 0x(…)

十进制->任意进制

整数部分

短除法,除基取余法

十进制数 除以基数r 得到余数Kn即为最低位数值

小数部分

乘基取整法

十进制数乘基数r 得到整数部分Kn即为最高位数值,

小数部分继续乘基数r继续计算,以此循环

有的十进制小数可能存在无法用二进制精确表示的情况

可以先转换化为二进制,再转化为八进制、十六进制

真值和机器数

符号位:0为正,1为负

真值:符合人类习惯的数字

机器数:数字实际存到机器里的形式,正负号需要被“数字化”

2.1.2 BCD码

BCD码:用二进制编码的十进制

用四位数字表示一位十进制数,快速转换

8421码

四位数字权重为8421

例子:985用8421码存储:1001 1000 0101

加法运算:和二进制加法类似,如果结果落在1010~1111非法区间内,就再加6(0110)修正,得到结果

余3码、2421码

2.1.3 无符号整数的表示和运算

无符号整数的表示

关键字:unsigned

机器字长位数 = 通用寄存器能存的位数 = 该计算机硬件能支持的无符号整数位上限

现在的个人计算机机器字长通常是64位,或至少32位

强行硬塞:只能保存低位的机器字长位数的部分

无符号整数的==全部二进制位都是数值位,没有符号位,==第i位的位权是2i-1

n bit无符号整数表示范围0~2n-1,超出则溢出,意味着该计算机无法一次处理这么多

可以表示的最小的数:全0,可以表示最大的数:全1

无符号整数的加法

加法:从最低位开始,按位相加,并往更高位进位

无符号整数的减法

减法:被减数不变,减数全部位按位取反,末位+1,与被减数相加,溢出则舍弃

2.1.4 有符号整数的表示和运算

有符号整数的表示

有符号整数的表示:原码、补码、反码

有符号整数的最高位是符号位,0表示正,1表示负

原码

符号位0/1对应正/负,剩余的数值位表示真值的绝对值

若机器字长n+1位,带符号整数的原码表示范围:-(2n-1)~2n-1

真值0有两种形式:+0和-0

原码的缺点:符号位不能参与运算,需要设计复杂的硬件电路才能处理->补码的符号位可以参与运算

原码、补码、反码的转换

正数:原码 = 反码 = 补码

负数:

原码、反码、补码符号位都为1

原码和反码相互转换:符号位不变,数值位全部取反

反码转换到补码:补码 = 反码末位+1

原码和补码相互转换符号位不变,从右往左找到第一个1,这个1左边的所有数值位按位取反

补码-2n无法转换为原码,因为原码最小值为-(2n-1)

补码转换为反码:先转成原码,再转成反码

补码

补码更便于计算机运算

用补码表示真值:符号位可以参与运算

补码的加法

从最低位开始,按位相加(符号位参与运算),并向更高位进位,溢出则舍弃

补码的减法

将减数的补码转换成负减数的补码(全部位按位取反,末位+1),与被减数的补码相加

类似于无符号整数的减法

计算机内部,所有带符号整数的加减法都要先转化为补码

2.1.5 移码

补码对符号位取反就得到移码(正数也如此),移码可表示范围和补码相同

移码只能用于表示整数,其它码可以用于表示小数

2.1.6 原/反/补/移码特性对比

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

2.1.7 定点小数

定点整数的编码表示:原码,反码,补码,移码

定点整数隐含的小数点位置在最低位后面

定点小数的编码表示:原码,反码,补码

定点小数隐含的小数点位置在符号位后面

定点小数的运算和定点整数一模一样

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意:位数扩展时,拓展位置不一样

2.2.0 奇偶校验码

奇校验码: 整个校验码(有效信息为和校验位)中“1”的个数为奇数

偶校验码: 整个校验码(有效信息为和校验位)中“1”的个数为偶数

偶校验的硬件实现:各信息进行异或(模2加)运算,等到的结果即为偶校验位

2.2.1 算术逻辑单元(ALU)

作用、大致原理

ALU主要功能:

算术运算:加、减、乘、除等

逻辑运算:与、或、非、异或等

(优先级:与>或)

辅助功能:移位,求补等

机器字长的本质:ALU可以支持一次输入输出多少位的数据

本质上逻辑表达式是对电路的数学化描述

复合逻辑:与非、或非、异或、同或

加法器的实现

2.2.2 并行进位加法器

2.2.3 补码加减运算器

2.2.4 加减运算和溢出判断,标志位的生成

2.2.5 定点数的移位运算

算数移位

通过改变各个数码位和小数点的相对位置,从而改变各个数码位的位权。可用移位运算实现乘法、除法。

原码的算术移位

符号位保持不变,仅对数值位进行移位

右移:高位补0,低位舍弃。若舍弃的位=0,则相当于除以2;若舍弃的位不=0,则会丢失精度。

左移:低位补0,高位舍弃。若舍弃的位=0,则相当于乘以2;若舍弃的位不=0,则会丢失精度。

反码的算术移位

正数和原码一样。

负数:

右移:高位补1,低位舍弃。

左移:低位补1,高位舍弃。

补码的算术移位

正数和原码一样

负数:

右移:(同反码)高位补1,低位舍弃

左移:(同原码)低位补0,高位舍弃

逻辑移位

循环移位

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/687394.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

哈默纳科Harmonic谐波减速机应用领域有哪些

在制造设备中&#xff0c;精确控制速度与位置的需求日益凸显&#xff0c;这为谐波减速机的广泛应用提供了广阔的舞台。哈默纳科Harmonic谐波减速机以结构紧凑、高精度、高刚度、高可靠性、便于安装维护等优势&#xff0c;在工业机器人和自动化系统中发挥着举足轻重的作用。 一、…

C语言—内存函数

1. memcpy 使用和模拟实现 void* memcpy&#xff08;void* destination&#xff0c;const void* source&#xff0c;size_t num&#xff09;&#xff1b; 函数memcpy从source的位置开始向后复制num个字节的数据到destination指向的内存位置。这个函数在遇到 ‘\0’ 的时候并不…

使用 Scapy 库编写 ICMP 洪水攻击脚本

一、介绍 ICMP&#xff08;Internet Control Message Protocol&#xff0c;互联网控制消息协议&#xff09;洪水攻击&#xff08;ICMP Flood Attack&#xff09;是一种常见的网络攻击类型&#xff0c;旨在消耗目标系统的网络资源和带宽。这种攻击通过发送大量的ICMP消息给目标…

JAVA开发的一套(智造制造领航者云MES系统成品源码)saas云MES制造执行系统源码,全套源码,支持二次开发

JAVA开发的一套&#xff08;智造制造领航者云MES系统成品源码&#xff09;saas云MES制造执行系统源码&#xff0c;全套源码&#xff0c;支持二次开发 1990年11月&#xff0c;美国先进制造研究中心AMR&#xff08;Advanced Manufacturing Research&#xff09;就提出了MES&#…

定时器的使用和实现

目录 一.定时器Timer类的主要方法 二.定时器Timer类的使用 三.定时器的模拟实现 一.定时器Timer类的主要方法 定时器Timer类在java.util包中。 使用前先进行实例化&#xff0c;然后使用实例的schedule(TimerTask task, long delay)方法&#xff0c;设定指定的任务task在指…

跟着小白学linux的基础命令

小白学习记录&#xff1a; 前情提要&#xff1a;Linux命令基础格式!查看 lsLinux 的7种文件类型及各颜色代表含义 进入指定目录 cd查看当前工作目录 pwd创建一个新的目录(文件夹&#xff09; mkdir创建文件 touch查看文件内容 cat、more操作文件、文件夹- 复制 cp- 移动 mv- 删…

从混乱到有序:PDM系统如何优化物料编码

在现代制造业中&#xff0c;物料管理是企业运营的核心。物料编码作为物料管理的基础&#xff0c;对于确保物料的准确性、唯一性和高效性至关重要。随着产品种类的不断增加和产品变型的多样化&#xff0c;传统的物料编码管理方式已经不能满足企业的需求。本文将探讨产品数据管理…

SOLIDWORKS参数化设计插件 慧德敏学

SOLIDWORKS软件是法国达索公司的产品&#xff0c;最初是满足欧美一些工程师产品设计需要而开发的&#xff0c;并没有考虑中国的企业实际情况。我们为满足国内客户的需要&#xff0c;对SOLIDWORKS进行了二次开发&#xff0c;借助SolidKits.AutoWorks参数化工具&#xff0c;通过一…

计算机网络-OSI七层参考模型与数据封装

目录 一、网络 1、网络的定义 2、网络的分类 3、网络的作用 4、网络的数据传输方式 5、网络的数据通讯方式 二、OSI七层参考模型 1、网络参考模型定义 2、分层的意义 3、分层与功能 4、TCP\IP五层模型 三、参考模型的协议 1、物理层 2、数据链路层 3、网络层 4…

SQL面试问题集

目录 Q.左连接和右连接的区别 Q.union 和 union all的区别 1、取结果的交集 2、获取结果后的操作 Q.熟悉开窗函数吗&#xff1f;讲一下row_number和dense_rank的区别。 Q.hive行转列怎么操作的 Q.要求手写的题主要考了聚合函数和窗口函数&#xff0c;row_number()&#…

SSM旅游论坛(前后分离源码+论文)

该旅游论坛是基于Spring、SpringMVC、Mybatis框架开发出来的 用户信息管理 此页面提供给管理员的功能有&#xff1a;用户信息的查询管理&#xff0c;可以删除用户信息、修改用户信息、新增用户信息&#xff0c; 还进行了对用户名称的模糊查询的条件 景点信息管理 论坛类型管理…

走进 Apache 世界的另一扇大门

引言 作为热爱技术的你&#xff0c;是否也羡慕 Apache PMC 或者 Committer&#xff0c;此篇文章渣渣皮带你迈出如何成为技术大牛的第一步。 当然我现在还是一枚小小的 code contributor&#xff0c;在成为 committer 的路上还在奋力打码中&#xff0c;写这篇文章也是为大家有…

C# Interlocked 原子操作

目录 注解 方法 适用于 案例 1&#xff1a;Add 对两个整数进行求和并用和替换第一个整数&#xff0c;上述操作作为一个原子操作完成 2&#xff1a;Exchange Exchange(UInt32, UInt32) 以原子操作的形式&#xff0c;将 32 位无符号整数设置为指定的值并返回原始值。 参考…

存储设备有哪些?属于私有云平台吗?怎么理解?

数字化的今天&#xff0c;数据已经成为了企业最重要最宝贵的资产了。为了保障数据的安全、可靠和高效利用&#xff0c;存储设备和云计算技术应运而生。今天我们大家就来聊聊存储设备有哪些&#xff1f;属于私有云平台吗&#xff1f;怎么理解&#xff1f; 存储设备有哪些&…

thinkadmin发邮件功能如何设置?怎么使用?

thinkadmin发邮件有哪些注意事项&#xff1f;支持哪些邮件服务&#xff1f; 在使用thinkadmin框架进行开发时&#xff0c;发邮件功能的设置是一个常见的需求。通过合理配置和简单的编程&#xff0c;我们可以轻松地在thinkadmin中集成邮件发送功能。AokSend将详细介绍如何设置t…

动态规划9:LCR 099. 最小路径和

动态规划解题步骤&#xff1a; 1.确定状态表示&#xff1a;dp[i]是什么 2.确定状态转移方程&#xff1a;dp[i]等于什么 3.初始化&#xff1a;确保状态转移方程不越界 4.确定填表顺序&#xff1a;根据状态转移方程即可确定填表顺序 5.确定返回值 题目链接&#xff1a;LCR …

在VS Code中操作MySQL数据库

创建MySQL连接 操作前需要先启动MySQL数据库&#xff0c;个别情况下需要以管理员身份打开cmd&#xff0c;在cmd中输入&#xff1a; net start mysql 我的MySQL数据库服务名为mysql84&#xff0c;需要填写自己的mysql服务名称。 随后在VS Code中下载插件 Prettier SQL VSCode …

新手必看!场外期权交易的六大注意事项

场外期权交易的六大注意事项 对于初涉金融市场的投资者来说&#xff0c;场外期权交易无疑是一个既具吸引力又充满挑战的领域。为确保您在交易中能够稳健获利&#xff0c;以下六大注意事项值得每位新手仔细研读。 文章来源/&#xff1a;财智财经 一、深入理解期权基本概念 场…

海思SS928(SD3403)部署YOLOv5-YOLOv7步骤详解

1. YOLO模型资料 本文档内容以yolov5-7.0工程、yolov5s模型为例。 a. 模型结构 详细的模型结构可以利用netron工具打开.pt或.onnx模型查看。 b. 模型参数即验证结果 其中,YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x为五种类型的预训练模型,其包含的检测类别相…

数据中心运维如何使用布线管理软件

1. 什么是可视化布线管理软件 1.1 数据中心布线管理软件部署在本地服务器&#xff0c;通过数据导入将现有的数据中心布线系统的设备信息、线缆连接关系等导入到管理软件中形成数据库&#xff1b; 1.2 布线管理软件提供了实时可视化的管理界面&#xff0c;从园区到建筑到楼…
最新文章