首页 > 代码库 > c语言中的原码,补码,反码的小结。

c语言中的原码,补码,反码的小结。

1.正数(符号位为0)的原码=反码=补码。

2.负数(符号位为1)由原码到补码:原码符号位1不变(即先求绝对值的原码,将符号位变为1),其余取反,得到反码,再加1,得到补码。

 重点:补码的表示方式有8位2进制,16位,32位,64位,这与c语言关键字表示的数值范围有关系。

3.对一个整数的补码再求补码,等于该整数自身。

4.模的概念:略。

       例子:时钟的计量范围为0到11,模为12。表示n位计算机计量范围为0到2^(n)-1,模为2^(n)。

       在以模为12的系统中,加8和减4效果都是一样的,它们互为补数,类似的,补数推广到计算机,便是补码,可将减法变为加法。

5.已知一个数的补码,求原码:(1):符号位为0,表示正数,原码即补码。(2):符号位为1,表示负数,求补码的补码就是原码。

  例子:补码11111001,表示负数,符号位不变,其余取反加1,得到10000111(-7)。

6.补码的真值:若要对一个负2进制补码求真值,将补码全部取反加1。

       例子:2进制:10111111(-65的补码) 各位取反:01000000 加1:01000001(+65)

c语言中的原码,补码,反码的小结。