源码:正数的源码为二进制表示形式,负数的源码为最高位为1,后为正数源码
反码:正数反码等于源码,负数的反码等于源码符号位不变,其他位取反
补码:正数的补码等于源码,负数的补码等于源码的反码+1
源码:负数的源码也等于负数,符号位补变,补码取反+1
有符号单字节数据:
源码表示:
01111111~00000000~10000000
127~0~-128
规则:对于一个最大长度为N bit的数,如果其是一个有符号的数,则该怎么输出就怎么输出;
如果其是一个无符号的数,则判断2 的 N次方除以2与其的大小,若该数大于或者等于2的N次方除以2,则调整该数为该数 – 2的N次方
例子: 对于一个最大长度为8bit的数,signedchar a = 0xFB,有符号,2的8次方 / 2为 128,0xFB = 251, 大于128,则需减去2的8次方,即a 实际表示的结果为251 – 256 = -5;