-
int类型:32位,第32位表符号,所以int范围:2的31次方(正负)
-
正数符号位为0,负数符号位为1
负数计算方法:除去符号位,剩下位取反+1
-
取反
int b=142314314 int c=~ b;//取反b
一个数取反+1=它的相反数【除了最小负数和0的相反数,没有对应,取反是它自己】
- 左移
int a= 9;
a<<1;//左移一位,用0在右侧补
- 带符号右移
int a= 9;
a>>1;//右移一位,用符号位在左侧补,正数用0补,负数用1补
- 不带符号右移>>>都用0补
-
打印二进制
//打印函数 public void print(int num){ for (int i = 31; i >= 0; i--) { System.out.print((num & (1 << i)) == 0 ? "0" : "1"); } System.out.println(); } }
把1左移i位,打印num的每一位