数据在计算机内部是以补码形式存储的。
二进制整数:原码=反码=补码
负数:反码=除符号位以外的各位取反,补码=反码+1(即符号位不变,其余各位取反在+1)
负数的补码 = 原码符号位不变取反加1 ,,,,, 其实:负数的原码 = 补码的符号位不变 取反+1 (-1再取反,跟取反再+1 是一个效果)
[+1] = [0000 0001]原 = [0000 0001]反 补码:0000 0001
[-1] = [1000 0001]原 = [1111 1110]反 补码:1111 1111
一个字节 = 8位。
64位机器下,int类型占四个字节, 每个字节8位,
计算机存储1使用32位的二进制数码,存储的是补码
+1
原码:0000 0000 0000 0000 0000 0000 0000 0001
反码 == 原码
补码 == 原码
-1 存储的是补码
原码:1000 0000 0000 0000 0000 0000 0000 0001
反码:1111 1111 1111 1111 1111 1111 1111 1110
+ 0000 0000 0000 0000 0000 0000 0000 0001
补码:1111 1111 1111 1111 1111 1111 1111 1111
|
|