初识JAVA虚拟机--数字编码
一、 整数在Java虚拟机中的标识 java虚拟机中的整数 :byte、short、int、long四种;分别标识8位、16位、32位、64位有符号整数。 整数在计算机中使用补码来表示,java虚拟机中也同理 。 原码 :符号位加上数字的二进制表示 int 10 的原码为:00000000 00000000 00000000 00001010 int -10 的原码为: 10000000 00000000 00000000 00001010 反码 :就是在原码的基础上符号位不变其余取反 int -10的反码为: 11111111 11111111 11111111 11110101 补码 :负数的补码就是反码加1,正整数的补码就是原码本身 int 10 的补码:00000000 00000000 00000000 00001010 int -10的补码:11111111 11111111 11111111 11110110 int a = - 10 ; for ( int i = 0 ; i < 32 ; i ++ ) { int t = ( a & 0x80000000 >>> ) >>> > ( 31 - i ) ; System . out . print ( t ) ; } 以上代码可以打印-10在虚拟机内的时间表示: