0x、0b 是什么?二进制与十六进制手算一遍
一、进制只是「逢几进一」
| 进制 | 可用符号 |
|---|---|
| 二进制 | 0 1 |
| 八进制 | 0~7 |
| 十进制 | 0~9 |
| 十六进制 | 0~9 A~F(A=10,F=15) |
最大能到 36 进制:0~9 加 26 个字母刚好 36 个符号,短链接服务常拿它压缩 ID。比如十进制 1234567890 转成 36 进制是 KF12OI。
二、十进制转二进制:除 2 取余,倒着读
以 13 为例:
- 13 ÷ 2 = 6 余 1
- 6 ÷ 2 = 3 余 0
- 3 ÷ 2 = 1 余 1
- 1 ÷ 2 = 0 余 1(商为 0 就停)
余数从下往上读:1101。
验算回去:1×8 + 1×4 + 0×2 + 1×1 = 13。
三、分组转换(最省事的一条)
不必绕道十进制:
- 二进制 → 十六进制:每 4 位一组。11111111 → FF
- 二进制 → 八进制:每 3 位一组。11111111 → 377
- 反过来:一位十六进制拆成 4 位,一位八进制拆成 3 位
所以一个字节(8 位)= 两位十六进制。这也是内存地址、颜色值(#RRGGBB 每两位一个通道,FF0000 是纯红)、MAC 地址都用十六进制的原因:比二进制短一半,又比十进制直观。
四、0x 和 0b 是给编程语言看的前缀
0x 前缀表示十六进制,0b 表示二进制,部分语言用 0o 表示八进制。
- 0xFF = 255
- 0b1010 = 10
- 0x10 = 16(不是 10)
注意:进制转换工具里输入 0x41 会报错,它只接受纯数字与字母——前缀是语法标记,不是数字本身的一部分。
五、ASCII 速查
| 字符 | 十进制 | 十六进制 | 二进制 |
|---|---|---|---|
| A | 65 | 41 | 01000001 |
| Z | 90 | 5A | 01011010 |
| a | 97 | 61 | 01100001 |
| 0 | 48 | 30 | 00110000 |
| 9 | 57 | 39 | 00111001 |
| 空格 | 32 | 20 | 00100000 |
| LF(换行) | 10 | 0A | 00001010 |
| CR(回车) | 13 | 0D | 00001101 |
三段都是连续排列:大写 A~Z 是 65~90,小写 a~z 是 97~122,数字 0~9 是 48~57。所以「大写转小写」在底层就是加 32。
LF 和 CR 的区别值得单独记:CR(13) 来自打字机把字车推回行首,LF(10) 是把纸往上卷一行。Unix/Linux 只用 LF,Windows 用 CR+LF,跨平台文本里多出来的 ^M 就是这么来的。
标准 ASCII 只到 127。128~255 属于扩展区,含义取决于代码页(Windows-1252、ISO-8859-1、GBK 对同一个码值解释不同),直接列出来反而误导,所以工具只收录 0~127;中文没有 ASCII 码,UTF-8 下一个汉字占 3 字节。
六、直接算
→ 进制转换:2~36 进制互转,支持一键步进
→ ASCII 码表:0~127 的十进制、十六进制、八进制、二进制对照
→ 编码转换:Base64、十六进制、二进制,看中文的真实字节
本站文章为个人使用经验的原创整理,除已注明来源的引用外均为本人撰写。文中涉及的软件名称、商标、截图等归各自权利人所有,引用仅用于说明与交流。如认为本站内容侵犯了你的合法权益,请通过「关于本站」页面的联系方式告知,核实后将及时更正或删除。