当前位置: 首页 > news >正文

计算机组成原理笔记(八)——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位专用符号位
运算效率低(需转换)高(直接硬件支持)
典型应用文本处理、日志记录金融计算、核心事务处理

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

相关文章:

  • 装修网站怎么做baidu百度首页官网
  • 简述网站建设基本流程图关键词优化心得
  • 移动网站怎么做什么软件可以刷网站排名
  • 国内建网站知名企业北京seo产品
  • 磐安网站建设公司查询
  • 湖北中英双语网站建设电商培训班一般多少钱一个月
  • D4RL库的安装历程及成功经验
  • Golang并发编程:Data Race检测与解决方案
  • Qt非阻塞延时实现
  • 基于 GEE 的区域降水数据可视化:从数据处理到等值线绘制
  • java连接opcua
  • 关于单片机IAP升级的那点事儿|智能设置中断向量表
  • PyTorch单机多卡训练(DataParallel)
  • 人工智能通识速览一(神经网络)(编辑中)
  • mysql中将外部文本导入表中过程出现的错误及解决方法
  • VITA 模型解读,实时交互式多模态大模型的 pioneering 之作
  • 【Flutter学习(1)】Dart访问控制
  • 【微机及接口技术】- 第三章 8086 汇编语言程序设计(汇编指令与汇编程序设计)下
  • iptables学习记录
  • Java基础-23-静态变量与静态方法的使用场景
  • 2025年3月29日笔记
  • 漏洞挖掘---顺景ERP-GetFile任意文件读取漏洞
  • PyTorch DDP流程和SyncBN、ShuffleBN
  • 利用 PCI-Express 交换机实现面向未来的推理服务器
  • 消费品行业创新创业中品类创新与数字化工具的融合:以开源 AI 智能客服、AI 智能名片及 S2B2C 商城小程序为例
  • IDApro直接 debug STM32 MCU