各个进制的范围和前后缀
进制 | 英文 | 范围 | 前缀 | 后缀 |
二进制 | Binary | 0-1 | 0b | B |
八进制 | Octal | 0-7 | 0o | O |
十进制 | Decimal | 0-9 | 0d | D |
十六进制 | Hexadecimal | 0-9, A-F | 0x | H |
16进制用0x前缀或后缀H来表示十六进制,而2进制为0b为前缀或B来表示二进制。
16进制范围
16进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
通过“8421”计算出来的2进制和16进制转换的表格
来源自二进制:
二进制的“8421”计算出的16进制 | ||
---|---|---|
二进制 | 过程 | 十六进制 |
1111 | =8*1 + 4*1 + 2*1+ 1*1 = | 15 =F |
1110 | = 8*1 + 4*1+ 2*1 + 1*0 = | 14= E |
1101 | = 8*1 + 4*1 + 2*0 + 1*1= | 13= D |
1100 | = 8*1 + 4*1 + 2*0 +1*0 = | 12 = C |
1011 | = 8*1 + 4*0 + 2*1 + 1*1 = | 11= B |
1010 | = 8*1 + 4*0 + 2*1 + 1*0= | 10 =A |
1001 | = 8*1 + 4*0 + 2*0 + 1*1= | 9=9 |
1000 | = 8*1 + 4*0 + 2*0 + 1*0= | 8=8 |
0111 | = 8*0 + 4*1 + 2*1 + 1*1= | 7=7 |
0110 | = 8*0 + 4*1 + 2*1 + 1*0= | 6=6 |
0101 | = 8*0 + 4*1 + 2*0 + 1*1= | 5=5 |
0100 | = 8*0 + 4*1 + 2*0 + 1*0= | 4=4 |
0011 | = 8*0 + 4*0 + 2*1 + 1*1= | 3=3 |
0010 | = 8*0 + 4*0 + 2*1 + 1*0= | 2=2 |
0001 | = 8*0 + 4*0 + 2*0 + 1*1= | 0=1 |
0000 | = 8*0 + 4*0 + 2*0 + 1*0= | 0=0 |
关于左移和右移:
移位符号:左移位“ << ” 右移位用 “ >> ”
移位口诀:左移时最低位补0;右移时最高位补0。(通俗一点就是移走了的位置后面就跟着上去,空着位置就使用 0去补位置)
对于二进制0000 0001进行左移2位举例(如下图):
16进制转2进制换算和移位操作(换算可以直接查上面的表格,注意:4位一组)
16进制 | 2进制 | 2进制(<<2) | 16进制(<<2后) |
0xf0 | 1111 0000 | 1100 0000 | 0xc0 |
16进制 | 2进制 | 2进制(>>2) | 16进制(>>2后) |
0xf9 | 1111 1001 | 0011 1110 | 0x3e |