计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,反码=原码按位取反 补码=反码+1。 移码为补码取反。
在二进制里,是用0和1来表示正负的,最高位为符号位,最高位为1代表负数,最高位为0代表正数。
对于负数而言,是以补码的形式存储在内存中的。以-8(int)为例,
第一步:将-8的绝对值转化为二进制 0000 1000
第二步:将上面的二进制以反码表示 1111 0001
第三步:转化为补码 11111111 11111111 11111111 11110010 因为int是四个字节。这个二进制的值可以通过Integer.toBinaryString()来获取。