Skip to content

进制 & 转换 ​

简介 ​

进制用基数和各位权值表示数值。计算机常见二、八、十、十六进制;转换进制改变写法,不改变数值。

分类 ​

进制基数数字常见用途
二进制20、1位状态和机器数据
八进制80–7Unix 文件权限
十进制100–9日常计数
十六进制160–9、A–F内存、颜色和字节数据

计算机中主要用途 ​

八进制一位对应三位二进制,十六进制一位对应四位二进制,因此便于压缩展示位模式。C 中八进制整数字面量通常以 0 开头,十六进制以 0x 开头;其他语言的字面量语法需分别确认。

之间转换 ​

以十进制26转二进制为例,下图记录每次除2的余数。余数先得到低位,因此需倒序读取为11010;正向拼接01011会得到错误的值。

查看图表代码
  • 二进制转八进制或十六进制:从右往左按三位或四位分组,最左不足位补零,再把每组转换为一个目标数字。例如二进制 110100111:按 110 100 111 得八进制 647,按 0001 1010 0111 得十六进制 1A7。
  • 八进制或十六进制转二进制:每位分别展开成三位或四位,再连接。八进制与十六进制互转时,先转二进制再重新分组;不能直接把每个八进制数字当成四位二进制。
  • 十进制转其他整数进制:连续除以目标基数,记录余数,直到商为零;余数倒序排列。零本身写作 0。
  • 其他进制转十进制:从右起,第 i 位乘以基数的 i 次幂后求和。例如十六进制 AB = 10 × 16 + 11 = 171。

练习 ​

下表保留原练习,修正分组与结果中的算术错误。数字的进制由列名指定,十六进制统一使用大写字母。

先独立转换二进制10101010、八进制755、十进制128、十六进制1A,以及下表其余四题;再展开答案核对。

转换结果与参考步骤
原题二进制八进制十进制十六进制
二进制 1010101010101010252170AA
八进制 7551111011017554931ED
十进制 1281000000020012880
十六进制 1A1101032261A
二进制 1101010111011111110101011101111115273754751D5DF
八进制 6541101011006544281AC
十进制 10241000000000020001024400
十六进制 FE11111110376254FE

例:八进制 755 展开为 111 101 101,重新按四位分组为 0001 1110 1101,即十六进制 1ED。

以上算法和表格针对非负整数;带符号编码与小数转换另需规则。本轮仅逐项静态复算,没有执行转换程序。

继续阅读