数制介绍和转换

概述

我们平常最习惯的是十进制数,而计算机硬件内部唯一能识别的是二进制数,任何其他计数值和信息在计算机内都要转化为二进制数。

十进制(decimal)

  • 逢十进位
  • 共有0 ~ 9十个数字符号,用D表示或不带任何标识默认为十进制数。例:20D或20

二进制(binary)

  • 逢二进位
  • 共有0,1两个数字符号,用B表示。例:1010B

介绍完最基本的两种数值,接下来我们介绍一种用于简化二进制表示的两种进制:

十六进制(Hex)

  • 共有0 ~ 9,A ~ F 十六个数字符号
  • 逢十六进位,用H表示。例:A3H

八进制(octal)

  • 共有0 ~ 7八个数字符号
  • 逢八进位,用O表示,例:20.52O

非十进制数向十进制数转换

使用按权展开公式完成非十进制数向十进制数转换

其中N为计数的基数,又称进位数;Ki为第i位的系数;Ni称为第i位的权;

备注:

  • 小数点左起第一位的权位是0,左起第二位的权位是1,依次类推。
  • 小数点右起第一位的权位是-1,右起第二位的权位是-2,依次类推。

下面展示使用该公式完成非十进制数向十进制数转换:

十进制到非十进制转换

对整数和小数两部分分别运算,最后组合即为答案。

  • 十进制对N进制的转换:
    • 对整数:除N取余,直到商为0为止。余数自下而上排列。
    • 对小数:乘N取整。直到小数为0为止。整数自上而下排列。

下面展示十进制转换为非十进制的例子:

二进制数向非十进制数的转换

二进制数转换为十六(2的N次)方进制数

  • 用4(N)位二进制数表示1位16(2的N次)进制数。
  • 整数部分,从小数点左起第一位开始分组,每4(N)位一组,不够4(N)位高位补0。
  • 小数部分,从小数点右起第一位开始分组,每4(N)位一组,不够4(N)位低位补0。

下面展示二进制数向非十进制数的转换的例子:

其中红色数字位补0部分。每4位一组,利用"8421法则"将得到的4个数值相加的和,与其他组得到的和拼接,即为转化后的十六进制数。

二进制数转换八进制数同理,但八进制使用的是"421法则"。

十六进制数转二进制数

1位十六进制数通过对应一组4位二进制数,这一组4位二进制数通过“8421法则”求和等于这一位十六进制数,再将得到的多个组拼接。

下面展示十六进制数向二进制数的转换的例子
(数电p8)

八进制数转二进制数

1位八进制数通过对应一组3位二进制数,这一组3位二进制数通过“421法则”求和等于这一位八进制数,再将得到的多个组拼接。

下面展示十六进制数向二进制数的转换的例子
(数电p9)

posted on 2021-10-24 09:20  技术小伙伴  阅读(1611)  评论(0编辑  收藏  举报