在 Java 里给 `int` 变量赋值时,前缀决定进制,下面一次性把四种写法列给你:
```java
int a = 0b1011; // 二进制 0b 或 0B 开头,值 = 11(十进制)
int b = 013; // 八进制 0 开头,值 = 11(十进制)
int c = 0xB; // 十六进制 0x 或 0X 开头,值 = 11(十进制)
int d = 11; // 十进制,无前缀,值 = 11
```
注意:
- 二进制从 Java 7 开始支持。
- 八进制容易和十进制混淆,日常代码基本不用。
好处:
用 16 进制给 `int` 赋值主要有三点“好处”,但仅限于特定场景:
1. 位运算场景
掩码、位移常量通常按 16 进制写,一眼就能看出哪几位是 1。
```java
int READ = 0x01; // 0000 0001
int WRITE = 0x02; // 0000 0010
int EXEC = 0x04; // 0000 0100
```
2. 与硬件/协议/内存布局打交道
寄存器地址、协议字段、颜色值(`0xFF00FF`)等天然是 16 进制,避免人工换算。
3. 对齐字节边界
16 进制 1 位 = 4 bit,2 位 = 1 byte,方便按字节对齐。
```java
int HEADER = 0xCAFEBABE; // 4 字节魔数
```
除此之外,业务逻辑里的普通计数器、数组长度、循环次数用 10 进制即可;用 16 进制反而降低可读性。

被折叠的 条评论
为什么被折叠?



