位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言基础知识—计算机内存数值存储方式

提问人:ylm发布时间:2020-09-25

1>.原码

 

一个数的原码(原始的二进制码)有如下特点:

    最高位作为符号位,0表示正,1表示负;

    其它数值部分都是数值本身绝对值的二进制数;

    负数的原码是在其绝对值的基础上,最高位变为1

 

举个例子,我们用一个字节的原码来表示+15-15+0-0

    +15  0000 1111

    -15  1000 1111

    +0   0000 0000

    -0   1000 0000

 

    原码表示方法简单易懂,带有符号数本身转换方便,只要符号位还原即可,但当两个整数相减或不同符号相加时,必须比较两个数哪个绝对值大,才能决定谁减谁,才能确定结果是正还是负,所以原码不便于加减运算。

 

2>.反码

 

一个数的反码(原始的二进制码)有如下特点:

   对于正数,反码与原码相同;

    对于负数,符号位不变,其它部位去反;

    

举个例子,我们用一个字节的反码来表示+15-15+0-0

  +15 0000 1111

  -15 1111 0000

  +0 :  0000 0000

   -0  :  1111 1111

 

  反码运算也不方便,通常用来作为求补码的中间过渡

 

3>.补码

 

在计算机中,数值一律用补码来存储。补码特点如下:

  对于正数,原码,反码,补码相同;

  对于负数,其补码为它的反码加1

  补码符号位不动,其他为求反,最后整个数加1,得到原码;

 

举个例子,我们用一个字节的补码来表示+15-15+0-0

  +15 0000 1111

  -15 1111 0001

  +0  0000 0000

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部