Java的字符与字节
2020-03-14 本文已影响0人
云木杉
'a'为一个字符就是一个字节byte,一个byte为八位(bit),bit就是二进制数据0101
so 一个byte为一个字节 八位
so 一个short为两个字节 十六位
so 一个int为四个字节 三十二位
so 一个long为八个字节 六十四位
so 一个char为两个字节 十六位
0X01 原码、反码、补码和移码
原码:正数是其二进制本身;负数是符号位为1,数值部分取X绝对值的二进制。
反码:正数的反码和原码相同;负数是符号位为1,其它位是原码取反。
补码:正数的补码和原码,反码相同;负数是符号位为1,其它位是原码取反,未位加1。(或者说负数的补码是其绝对值反码未位加1)
移码:将符号位取反的补码(不区分正负)
举个例子以一个字节8位说明:
编码 10810(sbyte) -10810(sbyte)
原码 01101100 11101100
反码 01101100 10010011
补码 01101100 10010100
移码 11101100 00010100