反码、原码、补码及位运算
JAVA的基本数据类型及其取值范围 类型 存储需求 bit 数 取值范围 备注 int 4字节 4*8 -2147483648~2147483647 即 (-2)的31次方 ~ (2的31次方) - 1 short 2字节 2*8 -32768~32767 即 (-2)的15次方 ~ (2的15次方) - 1 long 8字节 8*8 即 (-2)的63次方 ~ (2的63次方) - 1 byte 1字节 1*8 -128~127 即 (-2)的7次方 ~ (2的7次方) - 1 float 4字节 4*8 float 类型的数值有一个后缀 F(例如:3.14F) double 8字节 8*8 没有后缀 F 的浮点数值(例如:3.14)默认为 double boolean 1字节 1*8 true、false char 2字节 2*8 Java中,只要是字符,不管是数字还是英文还是汉字,都占两个字节。 反码、原码、补码 在计算机系统中,数字一律用补码来表示、运算和存储。 原码 :最高位为符号位的二进制数。 反码 :正数的反码是其本身,负数的反码在其原码的基础上,符号位不变,其余各个位取反。 补码 :正数的补码是其本身,负数的补码在其原码的基础上,符号位不变,其余各位取反,最后+1。 由来 : 本来的二进制数是没有正负的,为了区分正负数,将二进制的最高位用来表示正负(0表示正