二进制的原码和反码与补码的详细资料讲解

真值与机器值

真值很好理解,就是十进制的数字前面再加上正负号,这是人类可以简单识别的数字,比如0、±16、±1084、±10.34、±100.453等,而正数前面的+符号可以省略。机器值从字面理解就是机器(     计算机   )识别的值,实际上也确实是这个意思。

计算机中通过高低电平表示1或者0,这样就可以表示一个二进制的数值。一个1或者0表示的数值位称为一个bit,而计算机中存储和传输数据的最小单位是一个字节(by     te   )也就是8个bit,所以说计算机所有计算本质上都是基于二进制。

由于很多时候一个数据需要使用2个或者2个以上的字节表示,那么这种数据无论是存储还是传输的时候都会有一个顺序的问题,也就是大小端对齐(字节序)问题。在存储时高位字节在前为大端对齐,反之为小端对齐。在数据传输时先传输高位字节为大端字节序,反之为小端字节序。目前绝大多数平台内部都是小端对齐的方式存储数据,而大多数通信协议却都是用大端字节序传输数据,所以这一点值得注意一下。

符号位与数值位

计算机中使用二进制存储传输和计算数值,但是不能只有数值,计算的时候还得有正负之分。在计算机中使用最高bit位的数值来表示正负号,这个bit位称作符号位。

计算机中符号位的值为0表示这个数为正数,符号位值为1表示这个树为负数。由于符号位表示符号所以其不表示具体的值,除开符号位剩余的bit位用来表示数值也就是数值位。比如1个字节的整数00000001,其中最高bit(最左边)位的0为符号位,表示这个数为正数,数值位为1,所以其真值为1。同理2个字节的整数00000000_0000001,其真值也是1。

原码、反码和补码

 二进制的原码和反码与补码的详细资料讲解_设计制作_MEMS/传感技术

注:int8为8bit位整数占用1byte,int16为16bit位整数占用2byte。

 二进制的原码和反码与补码的详细资料讲解_设计制作_MEMS/传感技术

被乘数的第1个bit位值为0,将被乘数乘以0然后左移1位得到:00000000;

被乘数的第4个bit位值为0,将被乘数乘以0然后左移4位得到;00000000;

被乘数的第5个bit位值为0,将被乘数乘以0然后左移5位得到;00000000;

被乘数的第6个bit位值为0,将被乘数乘以0然后左移6位得到;00000000;

被乘数的第7个bit位值为0,将被乘数乘以0然后左移7位得到;00000000;

至于除法则是使用交替加减法的方式,本文只是对计算原理做一下扩展,这里不再继续深入做介绍,如果有想了解的可以自行上网查询。

通过上面的分析可以知道,使用补码可以将所有计算都转化为加法计算,这样可以让计算机底层对于整数计算变得简单,反码属于历史遗留,因为其存在±0的问题。

61
87
0
57

相关资讯

  1. 1、物联网告诉发展给传感器市场带来巨大机遇2610
  2. 2、新型抓取机器人RoCycle可完成垃圾分类1783
  3. 3、谷歌启动人工智能平台Coral,带有EdgeTPU平台2971
  4. 4、IBM提出新计算范式克服关键性能瓶颈,提高查询大型数据库能力3633
  5. 5、2018兆驰节能的途径深耕与创新回顾1772
  6. 6、印度理工学院开发出用于物联网设备的微处理器“MOUSHIK”4941
  7. 7、欧盟旗舰计划发布战略研究议程报告,瞄准“量子互联网”远景3456
  8. 8、角度传感器的简介4226
  9. 9、​莱安新品:专网非视距无线网桥223
  10. 10、新研发的计算机系统能使人工智能在语音识别方面胜过人类3011
全部评论(0)
我也有话说
0
收藏
点赞
顶部