1.java二进制表示形式
java中数字的二进制表示形式称为“有符号的二进制补码”,下面先介绍原码,反码,补码。
编码 | 计算方法 |
---|---|
原码 | 用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。 |
反码 | 正数的反码还是等于原码,负数的反码就是他的原码除符号位外,按位取反。 |
补码 | 正数的补码等于他的原码,负数的补码等于反码+1。 |
例如,对于4位二进制来说
十进制 | 原码 | 反码 | 补码 |
---|---|---|---|
4 | 0100 | 0100 | 0100 |
-4 | 1100 | 1011 | 1100 |
2.移位操作符
左操作数 移位操作符 右操作数,移位操作符的运算对象是二进制的“位”。移位操作符只可用来处理整数类型。如果对于char,byte或者short类型的数值进行位移处理,那么在位移进行之前,它们会被转换为int类型,并且得到的结果也是一个int类型的值。位移操作符有个需要注意的点,在下面会介绍到。位移操作符可分为以下三种:
1.左移位操作符(<<)
左移位操作符(<<):按照右操作数指定的位数将左操作数向左移动(在低位补0)
public class Example{
public static void main(String[] args) {
int a = Integer.MAX_VALUE;
System.out.println("十进制:" + a + " 二进制:" + Integer.toBinaryString(a));
System.out.println("十进制:" + (a <<2) + " 二进制:" + Integer.toBinaryString(a <<2));
a = Integer.MIN_VALUE;
System.out.println("十进制:"