Java中二进制数据的表示方法主要包括以下三种形式,结合权威信息源整理如下:
一、二进制字面量表示法
前缀标识 以`0b`或`0B`开头,后跟0或1,例如:
```java
int a = 0b0010; // 二进制10,十进制2
int b = 0B1101; // 二进制1101,十进制13
```
注意:填充的0和1数量需为偶数(如4位、8位等),否则会报错。
二、移位操作符
Java提供位移操作符对二进制位进行操作:
左移:
`a << n`,低位补0,高位补符号位(如`Integer.MIN_VALUE`左移会溢出)。
右移:`a >> n`,低位补符号位(正数补0,负数补1)。
三、二进制补码表示
Java采用 有符号二进制补码表示整数:
原码:
最高位为符号位(0为正,1为负),其余位为绝对值二进制。
反码:
符号位不变,其余位取反。
补码:
反码加1,例如:
- 4的二进制:`0010` → 反码`0010` → 补码`0010`
- -4的二进制:`1000` → 反码`1111` → 补码`1000`(即`0000`补码形式)。
四、其他进制转换
八进制:以`0`开头(如`012`对应十进制10)。
十六进制:以`0x`开头(如`0x12`对应十进制18)。
五、二进制文件操作
通过`FileOutputStream`写入字节数组实现二进制文件读写,例如:
```java
FileOutputStream out = new FileOutputStream("binary_file.bin");
byte[] data = {0x01, 0x02, 0x03};
out.write(data);
out.close();
```
以上方法覆盖了Java中二进制数据的表示、操作及文件处理,适用于不同场景需求。