计算机组成原理笔记(八)——2.4十进制和数串的表示

2.4.1十进制数的编码

1. 基本概念

  • 背景:十进制数在计算机中以二进制形式存储。为了高效表示和运算,发展了“二进制编码的十进制数”(BCD码)。
  • 核心思想:用4位二进制编码1位十进制数(0~9),但4位二进制可表示16种状态,有6种冗余。
  • 应用场景:需要保持十进制格式优势的领域(如财务计算、数字显示)。

2. 常见BCD编码类型

以下是四种主要的BCD编码方式及其特点:

(1) 8421码(自然BCD码)

  • 权值:8、4、2、1。

  • 特点

    • 直接映射十进制数的二进制形式。
    • 冗余状态:1010~1111为非法。
  • 编码示例

十进制 188421码
00000
50101
91001
  • 缺点:缺乏自补性,不适合某些算术运算。

在这里插入图片描述

(2) 2421码

  • 权值:2、4、2、1。

  • 特点

    • 自补码:对9的补数只需按位取反(如3的2421码为0011,6为1100)。
    • 冗余状态:0101~1010为非法。
  • 编码示例

十进制 182421码
00000
30011
61100
  • 优势:适合十进制加减运算,减少转换错误。

(3) 余3码

  • 规则:在8421码基础上加0011(十进制3)。
  • 特点
    • 自补码,冗余码为00000010、11011111。
    • 无权码,对误差不敏感。
  • 编码示例
十进制 18余3码
00011
51000
91100

(4) 格雷码(循环码)

  • 规则:相邻两个数仅有一位不同(可靠性高)。
  • 特点
    • 减少数据传输中的瞬时错误。
    • 无权码,需单独译码。
  • 编码示例
十进制 18格雷码 1
00000
10001
20011

3. 压缩与非压缩十进制数串

  • 非压缩十进制数串:每个字节存放一个字符的ASCII码(如’5’ → 0x35)。
    • 格式:符号在数值前或嵌入最后一位。
  • 压缩十进制数串:用BCD编码存储,一个字节存两位十进制数。
    • 符号处理:末4位表示符号(CH为+,DH为-)。

示例

  • +123的压缩表示0001 0010 0011 1100(末尾C表示正)。
  • -2648的压缩表示00000010 01100100 10001101

在这里插入图片描述

4. BCD编码性能对比

编码类型权值自补性冗余状态适用场景
8421码8,4,2,11010~1111常规十进制表示
2421码2,4,2,10101~1010自补运算(如减法)
余3码无权0000~0010, 1101~1111容错性要求高
格雷码无权根据实现不同数据传输可靠性

5. 实际应用示例

例1:十进制数5382的编码

  • 8421码0101 0011 1000 0010
  • 余3码1000 0110 1011 0101

例2:压缩BCD码的符号处理

  • -264800000010 01100100 10001101
    • 拆分:26 (BCD:00000010)、48 (BCD:10001101末尾D表示负)。

6. 总结

在这里插入图片描述

通过系统学习,可深入理解不同BCD编码的设计逻辑,为后续的数值运算和存储奠定基础。

2.4.2十进制数串

一、十进制数串的定义

计算机中需保持十进制数的直观性,用 字符串形式 存储处理的数值。其特点:

  • 长度不固定:支持可变长度数值
  • 两种存储形式:非压缩十进制数串与压缩十进制数串
  • 符号处理:符号位可位于数据首或数据尾

二、非压缩十进制数串

1. 基本特点

  • 定义:每个字节存放 1个十进制数或符号的ASCII码
  • 符号位位置
    • 前分隔式:独立字节存放符号(+=2BH-=2DH
    • 后嵌入式:符号嵌入最低数值位(正数不修改,负数将符号编码与最低位相加)
  • 存储空间:占用连续多个字节,需标明起始地址和串长1

2. 示例

数字串 +59 的非压缩表示:

  • 前分隔式

    + → 2B H
    5 → 35 H
    9 → 39 H
    
  • 后嵌入式(负数 -59 处理):

    5 → 35 H
    9 → 39 H + 40 H (负号) = 79 H
    

3. 优点与不足

特点说明
优点直观易读,适合非数值处理场景
缺点存储效率低,运算需额外转换
应用场景文本处理、数据展示

在这里插入图片描述

三、压缩十进制数串

1. 核心规则

  • 定义:每个字节存放 2个BCD码,符号位半字节位于末尾1

  • 存储规范

    • 数值+符号位总数须为偶数,奇数时高位补 0H
    • 符号编码:CH 表示正,DH 表示负
  • 示例+1234-2648

    +1234 → 01 23 4C
    -2648 → 00 26 48 DD
    

2. 内存存储示意图

在这里插入图片描述

3. 性能对比

特性非压缩方式压缩方式
存储效率低(1字节/数字)高(0.5字节/数字)
运算支持不适合直接运算支持直接十进制运算
空间占用冗余空间(仅低4位有效)无冗余

四、实际应用场景

  1. 财务系统
    • 金额需严格避免二进制转换误差,采用压缩格式存储
  2. 数据库储存
    • 如银行账户记录使用压缩BCD编码库存数据
  3. 主机构件通信
    • 文本协议(如JSON)使用非压缩格式,减少数据解析复杂度

五、总结

指标非压缩十进制数串压缩十进制数串
存储方式ASCII字符序列紧凑BCD编码
符号处理显式符号位/嵌入式修改末4位专用符号位
运算效率低(需转换)高(直接硬件支持)
典型应用文本处理、日志记录金融计算、核心事务处理

通过充分理解两种存储方式的特性,可在实际应用中平衡空间效率与处理性能的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiao--xin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值