卡片 1:位置计数法与基数

问题: 进制数的基数、数码范围和第 位位权分别是什么?如何将任意 进制数还原为十进制值?

点击查看答案
  • 基数 :可使用的数码个数,因此每一位只能取 。
  • 从右向左,第 位的位权是 ;满 进 1。

若 ,则

这就是“按权展开”:每一位的数码乘该位权,再求和。

关联笔记:数制与码制:数制

卡片 2:十进制整数、小数转换为 进制

问题:十进制整数和小数分别如何转换为 进制?读数方向为什么相反?

点击查看答案
  • 整数部分:反复“除以 、取余数”,余数从后向前读。
    每次余数给出当前最低有效位,所以最后得到的余数应最先读。
  • 小数部分:反复“乘以 、取整数”,整数从前向后读。
    每次整数部分给出当前最高的小数位,所以立即顺序写下。

小数部分若无法乘到 0,只能截断取近似值;例如十进制有限小数不一定是二进制有限小数。

关联笔记:数制与码制:数制转换

卡片 3:二、八、十六进制的快速转换

问题:为什么二进制与八进制、十六进制可以直接分组转换?

点击查看答案

因为

所以 3 位二进制对应 1 位八进制,4 位二进制对应 1 位十六进制。转换时以小数点为界分组:

  • 整数部分从右向左分组;
  • 小数部分从左向右分组;
  • 不足一组时,在远离小数点的一端补 0。

例如 。

关联笔记:数制与码制:二、八、十六进制

卡片 4:固定位宽与无符号溢出

问题: 位无符号数能表示的范围是什么?为什么固定 位电路发生溢出等价于模 运算?

点击查看答案

位无符号数的范围为

电路只能保存低 位,超出的高位被丢弃,因此存储结果为

关联笔记:数制与码制:固定位宽与溢出

卡片 5:原码、反码、补码的核心差别

问题:同一 位有符号数在原码、反码、补码中的负数表示、零的个数和最小可表示值有何差异?

点击查看答案
项目原码反码补码
负数符号位为 1,数值位为绝对值原码数值位取反原码数值位取反再加 1
零正零、负零各一个正零、负零各一个只有一个零
最小值

补码把减法统一为加法:

关联笔记:数制与码制:补码、数制与码制:三种机器码

卡片 6:补码的范围与同一比特模式的解释

问题: 位补码的表示范围是什么?为什么同一串比特必须先说明“位宽和解释方式”?

点击查看答案

位补码的范围为

比特串本身没有正负含义;它是无符号数、原码、反码还是补码,取决于约定的解释方式和位宽。

例如 32 位的 :

  • 按无符号数解释为 ;
  • 按补码有符号数解释为 。

关联笔记:数制与码制:位宽

卡片 7:定点数与浮点数的取舍

问题:定点数和浮点数的小数点分别如何处理?在 中,阶码和尾数各决定什么?

点击查看答案
  • 定点数(Fixed Point):小数点位置固定,且不占存储位;纯整数的小数点隐含在最低位右侧,纯小数的小数点隐含在最高数值位左侧。
  • 浮点数(Floating Point):

阶码 决定可表示的数值范围,尾数 的位数决定有效精度。因此浮点数适合同时覆盖很大、很小数值的场景,但精度受尾数位数限制。

关联笔记:数制与码制:定点数与浮点数

卡片 8:8421 BCD 的表示与加法校正

问题:BCD 与普通二进制整数表示的对象有什么不同?8421 BCD 一位加法何时要加 ,为什么?

点击查看答案

BCD(Binary-Coded Decimal) 用 4 位二进制编码一位十进制数字;一个 位十进制数占 位。它不是把整个十进制数直接转为普通二进制。

对 8421 BCD,每一位十进制数先按普通二进制相加。只有 表示 ;结果超过 ,或有进位时,就加 ,并把进位传给高一位。

例如:,结果非法;加 后为 ,即 的 BCD 为 。

该规则只适用于 8421 BCD,不能直接套用到 2421 码或余 3 码。

关联笔记:数制与码制:BCD 码

卡片 9:格雷码、字符编码与适用边界

问题:格雷码为什么适合模拟量转换却不适合直接算术?

点击查看答案

格雷码是无权码,相邻代码只改变 1 位,因此在模拟量跨越相邻量化值时,可减少多位同时翻转带来的读数错误;但它没有按位权展开的算术意义,不能直接做算术运算。

关联笔记:数制与码制:格雷码、数制与码制:字符编码