原码、反码和补码
计算机当中的单位进制
1b = 8 bit
一个字节是8个比特位(二进制位)
一个b一个字节
1kb = 1024b
1mb = 1024kb
1gb = 1024mb
1tb = 1024gb
1.计算机中的数据: 分为无符号数据和有符号数据,Java语言都是有符号位的,十进制数和小数在计算机中都是以二进制形式进行存储,且存储的有符号整数都是存储它们的补码.
2.Java有符号数据表示规则:
1)符号: 0正1负,放在数值的最高位,最高位是一个符号位。
2)有符号数可以表示为:原码,反码,补码; 原码即为数值的二进制表示,但因为CPU内部加法和减法CPU最终做的都是加法,同时为了准确表示正负数和优化运算,就有了对应的反码和补码; 乘法和除法就会涉及位移运算.
正数的源码、反码和补码三码一致
负数的补码就是负数的反码+1
补码转变为源码(负数):
方式一:最高位不变,其余位按位取反最后+1。
方式二:将补码减1,之后取反。
计算机当中存储的数字,存储的都是数字的补码。