计算机是如何存储数字的

计算机存储都是以补码的形式存储的。原因是简化计算机的基本运算电路,使加减法都可以用加法来进行运算。

整数:

  原码:

    原码就是一个数的二进制形式,只不过最高位是用来表示符号位。

    例:+1  =  0000 0001(原码),-1  =  1000 0001(原码);

  反码:

    正数的原码,反码,补码 是相同的,就是原码的形式。

    负数的反码等于其原码除符号位以外相反(0变1,1变0)

    例:+1 = 0000 0001(原码)  =  0000 0001(反码)  = 0000 0001(补码)

       -1 = 1000 0001(原码)  =  1111 1110(反码)  

  补码:

    计算机储存数字用的码就是补码;

    正数的原码,反码,补码 是相同的,就是原码的形式。

    负数的补码等于反码加一;

    例:+1 = 0000 0001(原码)  =  0000 0001(反码)  = 0000 0001(补码)

      -1 = 1000 0001(原码)  =  1111 1110(反码) = 1111 1111 (补码)

 

  计算机是怎么把减法和加法一起变成加法计算,我是这样理解的:

    对于 1111 1111 (-1)来说 它 加上0000 0001 (1)和 减去1111 1111 (-1)的结果都是 0000 0000,所以在这里减去1111 1111 (-1)和加上 0000 0001(1) 的效果是一样的,因此计算机在做减去1111 1111(-1) 的运算时,就会直接加上0000 0001(1)(也就是 1111 1111(-1) 的补码);同理减去1111 1110 和加上 0000 0010等等都是一样的。

两个补码相加时,如果最高位(符号位)有进位,则进位直接舍去。

  

上一篇:原码反码和补码


下一篇:基本语法(二)