🔢 进制转换
二进制 / 八进制 / 十进制 / 十六进制 互转
二进制 / 八进制 / 十进制 / 十六进制 互转
从右到左每位乘2的n次方(n从0开始)再相加。如1011=1×8+0×4+1×2+1×1=11。十进制转二进制:除2取余,逆序排列。
十六进制用0-9和A-F表示0-15,常用于表示颜色、内存地址。如#FF5733表示RGB颜色。1个十六进制位=4个二进制位,1个字节=2个十六进制位。
八进制用0-7表示,每位对应3个二进制位。Linux文件权限用八进制:755=rwxr-xr-x。现代编程中逐渐被十六进制取代。
先把二进制从右往左每4位一组(不足补0),每组转1个十六进制位。如10110110=1011 0110=B6。反方向每位十六进制扩成4位二进制。
二进制从右往左每3位一组(不足补0),每组转1个八进制位。如10110110=10 110 110=266。反方向每位八进制扩成3位二进制。
十进制除以16取余,倒序排列,余数10-15用A-F表示。如255÷16=15余15,即0xFF。
因为1字节=8位=2个十六进制位,正好对应二进制,且比二进制短很多。内存地址、颜色值、哈希值都用十六进制表示。
计算机用补码表示负数。如-1在8位下是11111111。补码=反码+1。本工具主要处理正整数转换。
人用十进制(0-9)因为人有10根手指。计算机用二进制(0/1)因为电路只有开/关两种状态。八进制和十六进制是二进制的"缩写",方便人类阅读。
二进制太长,十六进制正好是二进制的4倍压缩,八进制是3倍压缩。所以程序员用十六进制表示内存地址、颜色、哈希值。
| 十进制 | 二进制 | 八进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
二进制↔十六进制:每4位二进制对应1位十六进制。2⁴=16,正好。
二进制↔八进制:每3位二进制对应1位八进制。2³=8,正好。
十六进制↔八进制:先转成二进制或十进制再转。
颜色:网页颜色用十六进制#RRGGBB,每个分量0-255对应00-FF。
内存和调试:内存地址、寄存器、反汇编代码用十六进制。
Linux权限:文件权限用八进制,如755。
字符编码:UTF-8、Unicode码点常用十六进制表示(如"中"=U+4E2D)。
| 场景 | 示例 |
|---|---|
| 网页颜色 | #FF0000=红色 |
| Unicode码点 | U+4E2D=中 |
| 内存地址 | 0x7fff1234 |
| Linux权限 | chmod 755 |
| 二进制标志位 | 0x01/0x02/0x04 |
转换时注意:超范围数字(如二进制里的2、八进制里的9)是非法输入,需先校正。
| 十进制 | 二进制 | 八进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
| 16 | 10000 | 20 | 10 |
| 31 | 11111 | 37 | 1F |
| 十进制 | 十六进制 | 二进制 | 用途 |
|---|---|---|---|
| 0 | 00 | 00000000 | 黑色 |
| 255 | FF | 11111111 | 白色 |
| 128 | 80 | 10000000 | 中间值 |
| 10 | 0A | 00001010 | 换行符 |
| 65 | 41 | 01000001 | 字符A ASCII |
| 97 | 61 | 01100001 | 字符a ASCII |
| 48 | 30 | 00110000 | 字符0 ASCII |
| 255 | FF | 11111111 | RGB单通道最大 |
1. 在任意输入框输入数值。
2. 其他进制自动实时转换。
· 二进制:0,1
· 八进制:0-7
· 十进制:0-9
· 十六进制:0-9,A-F