简单理解 原码、反码和补码

原码、反码和补码的概念

原码:

原码就是符号位加上符号为后面的绝对值, 即用第一位表示符号(0表示正,1表示负), 其余位表示值. 比如如果是8位二进制:

+7 = 0000 0111   

-7 = 1000 0111 

反码:

正数的反码就是其本身,也就是  +7 = 0000 0111(原) = 0000 0111(反)

负数的反码符号位不变,其余位取反 ;

-7 = 1000 0111(原) 

-7 = 1111  1000(反)

补码:

正数的补码就是其本身,也就是  +7 = 0000 0111(原) = 0000 0111(反) = 0000 0111(补)

负数的补码是在负数反码的基础上再加1;

-7 = 1000 0111(原)

-7 = 1111 1000 (反)

-7 = 1111 1001(补)

计算机在储存的时候都用原码,计算机在运算时用补码。

举个简单的栗子:

+7 = 0000 0111      -7 = 1000 0111

如果用原码计算 :

0000 0111(+7) +1000 0111(-7)= 10001110(-14)

计算结果是不对的;

用补码计算:

正数的反码和补码都是其本身;

负数的补码就是反码+ 1;

0000 0111(+7)+ 1111 1001 (-7) = 0000 0000 (0)

粗浅理解,如有错处,请指正,谢谢。

你可能感兴趣的:(简单理解 原码、反码和补码)