二进制 真值 原码 反码 补码

来源:互联网 发布:openstack网络配置 编辑:程序博客网 时间:2024/06/09 21:11

机器数:

              一个数在计算机中二进制的表示形式叫机器数,机器数是带符号的 。计算机使用最高位来表示符号位 负数为1 正数为0.假如计算机的字长为8位 那么对于十进制3的机器数表示为0000 0011  ,而对于-3的机器数表示为1000 0011。


真值:  

          由于机器数是带符号的所以机器数的形式值就不等于实际的值 ,即最高位是不参与运算的。真值就是它实际的值(可能理解错了 有大神看到有不对的地方请指点下  谢谢)

原码:

          百科里的解释是:原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表         示数值的大小。所以8位二进制的取值范围就是:[1111 1111,0111 1111]即[-127,127],原码是人脑最容易理解和计算的表示方式


反码:

       先上一段百科的解释---:”在计算机内,定点数有3种表示法:原码、反码和补码。反码是数值存储的一种,但是由于补码更能有效表现数字在计算机        中  的形式,所以多数计算机一般都不采用反码表示数。

       正数的反码是其本身,负数的反码是符号位不变 其它位取反。[+1]=[0000 0001]原= [0000 0001]反,[-1]=[1000 0001]原=[1111 1110]         反。可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值,通常要将其转换成原码再计算


补码:

       百科:在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一            处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路

        

         正数的补码与其原码相同 ,负数二进制补码 先求与之对应的正数二进制数 然后所有位取反加1 不够位数时左边加1

       例如,[+1]=[0000 0001]原=[0000 0001]反=[0000 0001]补,[-1]=[1000 0001]原=[1111 1110]反=[1111 1111]补,对于负数,补码表示方式也是人脑无法直观看出其数值的,通常也需要转换成原码再计算其数值







0 0
原创粉丝点击