原码,反码,补码

原码:二进制带有符号位,最高位0表示正,最高位位1表示位负

反码:正数的反码等于原码,负数的反码等于原码符号为不变其他位取反加1

补码:正数的补码等于原码,负数的补码等于反码+1

举例
5(byte类型)的原码,反码,补码
原码:00000101
反码:00000101
补码:00000101

-3(byte类型)的原码,反码,补码
原码:10000011
反码:11111100
补码:11111101

为什么要有补码:
方便计算机底层进行计算,计算机只有加法器,例如上述的5-3会转化成加法5+(-3),而补码的意义就是负数参与加法运算的时候用补码表示,例如上述5+(-3)的结果是2

byte范围:
最大值:01111111 2^7 -1
最小值:10000000 -2^7
可能会有疑问10000000不是-0吗,00000000就是+0,为了避免0有正0和负0之分,规定10000000表示负数的最小值-2^7

最后牢记:
补码参与运算!!!
原码表示大小!!!

posted @ 2018-03-11 16:21  unbelievableme  阅读(963)  评论(0编辑  收藏  举报