补码表示法啊。负数X 用 2^n - |X| 来表示
int在java中是32位(n位)
正数: [+1]补 = 000...01
负数: [-1]补 = 2^n - |1| 看看下面两个是一样的吧,呵呵int i= -2;
System.out.println(Integer.toBinaryString(i));
System.out.println(Long.toBinaryString((long)Math.pow(2, 32) - Math.abs(i)));
int在java中是32位(n位)
正数: [+1]补 = 000...01
负数: [-1]补 = 2^n - |1| 看看下面两个是一样的吧,呵呵int i= -2;
System.out.println(Integer.toBinaryString(i));
System.out.println(Long.toBinaryString((long)Math.pow(2, 32) - Math.abs(i)));
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货