关于C语言的原码,反码,补码基础知识,以及什么是反码+1。
正数的原码就是把这个正数(十进制)化成二进制形式。
正数的原码,反码,补码都一样(就是这个正数本身的二进制形式)。
例如:
5的原码:00000101
5的反码:00000101
5的补码:00000101
负数的原码就是把正数的符号位(哪个是符号位图片有说明)变1,数值位(哪个是数值位图片有说明)不变。
负数的反码中的符号位与负数原码的符号位相同,数值位取反,取反就是将0变1,1变0。
负数的补码等于反码+1。
那么什么是反码+1呢?
有两种情况。
-
如果负数的反码的最低位为0,则直接在最低位+1。
例如:
-9的原码:10001001
-9的反码:11110110
-9的补码:11110111 -
如果负数的反码的最低位为1,则+1就要进位
例如:
-10的原码:10001010
-10的反码:11110101
-10的补码:11110110-8的原码:10001000
-8的反码:11110111
-8的补码:11111000