机器数——源码、反码、补码
基本定义
1.机器数是将符号“数字化”的数,是数字在计算机中的二进制表示形式。
表示一个机器数,应该考虑以下三个因素:
(1)机器数的范围。
(2)机器数的符号。
(3)机器数中小数点的位置。
我们这里只讨论二进制整数在计算机中的数值编码方式及其关系,简单地说就是用0和1如何表示正数和负数以及这些表示方法之间的关系。
2.无符号数和有符号数的区别
1.无符号数
表示形式:在计算机中的表示是用二进制形式,并且没有符号位。
无符号数大小:对应二进制数的大小。
2.有符号数
对于有符号数有三种二进制编码方式:源码、反码和补码。
3.原码、补码和反码的概念
1.原码:将数的真值形式中“+”号用“0”表示,“-”号用“1”表示,叫做数的原码形式。
特点:
- 比较直观:它的数值部分就是该数的绝对值,而且与真值、十进制数的转换十分方便。
- 运算复杂:用这样一种直接的形式进行加运算时,负数的符号位不能与其数值部分一道参加运算,而必须利用单独的线路确定和的符号位。这也是导致计算机中不用原码表示有符号数的原因
2.反码
如前所述,为了克服原码运算的缺点,采用机器数的反码和补码表示法。即对正数来说,其反码和原码的形式相同;对负数来说,反码为其原码的数值部分各位变反。