编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 名词解释 / 进制

进制

进制(又称基数、radix、数制)是用固定数量的符号来表示数值的计数方式。基数为 N 就表示只用 N 个不同的数字、逢 N 进一:十进制用 0-9二进制只用 01十六进制0-9A-F。同一个数值在不同进制下写法不同,但大小完全一样——0xFF0b11111111255 指的是同一个数。

它的原理是「按位加权」:每一位的实际值等于「该位数字 × 基数的位次幂」,从右往左位次依次升高。开发中常打交道的几种:

常见误区:字面量前缀别混淆,0x 是十六进制、0b 是二进制、0o 是八进制;在 C、旧版 JavaScript 里以 0 开头的整数会被当作八进制,很容易踩坑。要记住进制只改变书写与显示形式,不改变数值本身,也和数据类型、存储位宽无关。

常见问题

十六进制为什么在编程里这么常用?
因为 1 位十六进制正好等于 4 位二进制,能把冗长的二进制紧凑地写出来,而且和字节对齐(1 字节 = 8 位 = 2 位十六进制)。所以颜色值、内存地址、字节数据都爱用它。
0xFF 和 255 有区别吗?
没有区别,它们是同一个数值的两种写法,只是进制不同。进制只影响书写和显示,不影响值的大小,也不影响运算结果。
为什么我写的 018 会报错或结果不对?
在 C、旧版 JavaScript 等语言里,以 0 开头的整数被解释为八进制,而 8、9 不是合法的八进制数字,所以 018 会出错。想表示十进制就去掉前导 0,想表示八进制建议用更明确的 0o 前缀。

相关工具

相关名词