java 负数的二进制表示

JAVA 基础系列

计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”
反码:原码按位取反
补码:反码+1
移码:移码(又叫增码)是符号位取反的补码

对于负数而言,是以补码的形式存储在内存中的。以-7(int)为例
第一步:将-7的绝对值转化为二进制 0000 0111
第二步:将上面的二进制以反码表示 1111 1000
第三步:转化为补码:11111111111111111111111111111001

这个二进制的值可以通过Integer.toBinaryString()来获取。int 在内存中占用4个字节

代码:

	public static void main(String[] args) {
	
		int d = -7; // 
		System.out.print(""+Integer.toBinaryString(d)+" \n");

	}
	

输出结果:

11111111111111111111111111111001 

你可能感兴趣的:(java)