原码、反码、补码

二进制分为原码、反码、补码

计算机实际是一律用补码进行位运算、运算、存储、表示的

为什么负数用补码来表示?为了实现加减法运算法则的统一

运算过程:10进制->原码->反码->补码->进行运算->补码->反码->原码->10进制

可以进行的运算有如与运算(有0则0),或运算(有1则1),异或运算(相同为0,不同为1),左移,右移,无符号位右移

正数的原、反、补相同

负数的反码=原码符号位不变,其他位取反

负数的补码=原码符号位不变,其他位取反,然后+1=负数的反码+1

比如:int a =3

a原码:00000000 00000000 00000000 00000011

a反码:00000000 00000000 00000000 00000011

a补码:00000000 00000000 00000000 00000011

比如int b=-3

b原码:10000000 00000000 00000000 00000011

b反码:11111111 11111111 11111111 11111100

b补码:11111111 11111111 11111111 11111101

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章