进制介绍
- 对于整数,有四种表示方式:
- 二进制: 0、1 满2进1 以0b或0B开头表示
- 八进制: 0-7 满8进1 以数字0开头表示
- 十进制: 0-9 满10进1
- 十六进制: 0-9及A(10)-F(15) 满16进1 以0x或0X开头表示 (A-F不区分大小写)
例:
1 | int n1 = 0b1010; // 2 |
2、8、16 ——> 10
- 从最低位开始,将每个位上的数提取出来,乘以进制数的**(位数 - 1)**次方,然后求和
- 例:
- 0b1011 = 1 * 2^0 + 1 * 2^1 + 0 * 2^2 + 1 * 2^3 = 11
- 01010 = 0 * 8^0 + 1 * 8^1 + 0 * 8^2 + 1 * 8^3 = 520
- 0x10101 = 1 * 16^0 + 0 * 16^1 + 1 * 16^2 + 0 * 16^3 + 1 * 16^4 = 65793
10 ——> 2、8、16
- 将该数不断除以进制数,直到商为0为止,然后将每步得到的余数倒过来,就是对应的进制
- 例:
34/2 = 17 ··· 0
17/2 = 8 ··· 1
8 / 2 = 4 ··· 0
4 / 2 = 2 ··· 0
2 / 2 = 1 ··· 034(十进制) = 0b00100010(二进制)
2 ——> 8
- 从低位开始,将二进制数每三位一组,转成对应的八进制数即可
- 例:
- 0b11010101 =
0b11(3)010(2)101(5) = 0325
- 0b11010101 =
2 ——> 16
- 从低位开始,将二进制数每四位一组,转成对应的十六进制数即可
- 例:
- 0b11010101 =
0b1101(13->D)0101(5) = 0xD5
- 0b11010101 =
8 ——> 2
- 将八进制数每一位,转成对应的一个3位的二进制数即可
- 例:
- 0237 =
02(010)3(011)7(111) = 0b010011111
- 0237 =
16 ——> 2
- 将十六进制数每一位,转成对应的一个4位的二进制数即可
- 例:
- 0x23B =
0x2(0010)3(0011)B(1011) = 0b001000111011
- 0x23B =