java中负数的二进制表示

计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,补码=反码+1。在二进制里,是用0和1来表示正负的,最高位为符号位,最高位为1代表负数,最高位为0代表正数。

以java中8位的byte为例,最大值为:0111 1111,最小值为1000 0001。

那么根据十进制的数字,我们如何转换为二进制呢?对于正数我们直接转换即可,对于负数则有一个过程。

以负数-5为例:

1.先将-5的绝对值转换成二进制,即为0000 0101;

2.然后求该二进制的反码,即为 1111 1010;

3.最后将反码加1,即为:1111 1011

所以Java中Integer.toBinaryString(-5)结果为11111111111111111111111111111011. Integer是32位(bit)的.

验证代码:

public class Test2 {public Test2(){int i=-5;System.out.println("i= "+i+" = "+Integer.toBinaryString(i)+"(B)");}public static void main(String[] args){new Test2();}}

运行结果:

不敢面对自己的不完美,总是担心自己的失败,

java中负数的二进制表示

相关文章:

你感兴趣的文章:

标签云: