《逻辑与计算机设计基础(原书第5版)》——1.5 十进制编码

简介: 本节书摘来自华章计算机《逻辑与计算机设计基础(原书第5版)》一书中的第1章,第1.5节,作者:(美)M.莫里斯·马诺(M. Morris Mano)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.5 十进制编码

二进制数是最适合计算机系统的,但人们却习惯使用十进制数。一种解决方法是将十进制数转换成二进制形式,所有的计算都采用二进制形式,然后将结果再转换回十进制数。因为计算机只接受二进制数,这种方法需要我们将十进制数以某种0、1编码的二进制形式在计算机中存储。在这种编码上甚至可以直接进行十进制的算术操作。
一种n位的二进制编码(binary code)是一组有2n个n位二进制位(0或1)的组合,每种组合是编码集合中的一个元素。一个有4个元素的集合可以用2位二进制数来编码构成,其中每一个元素就是后面二进制位组合中的某一个:00、01、10、11。8个元素的集合可以用3位二进制编码构成,16个元素的集合则需要4位二进制编码。一种n位的编码有0~2n―1个二进制位组合形式,每个元素只能用一个二进制组合来表示,不能出现两个元素有相同值的情况,否则,就会导致赋值的不确定性。
如果编码集合的元素个数不是2的幂数,就有可能出现一些二进制位组合未赋值的情况,十进制的10个数字就是如此。10个元素须用4个二进制位的组合来区分表示,这样16个可能的组合中就有6个多余的组合未被赋值。有很多种编码方法来使用4位二进制位表示10个元素。表1-4所列的就是一种用二进制形式表示十进制数的最直接的方法,称为用二进制编码的十进制数(binary-coded decimal),通常简称BCD码。还有其他十进制数字的编码形式,但使用不普遍。
表1-4给出十进制中每个数字的二进制编码。一个n位的十进制数需要4n位的BCD码来表示。这样,十进制数396的BCD形式是12位的:
0011 1001 0110
其中,每4位一组的编码表示一个十进制的数字。BCD码表示的十进制数中只有0~9是和相应的二进制数是一模一样的。大于等于10的BCD码表示的十进制数就与相对应的二进制数完全不一样了,虽然它们都是采用0与1的组合形式。甚至,二进制数中的1010到1111在BCD码中没有用到,没有任何意义。
image

如下是十进制数185和它的BCD编码以及二进制形式:
(185)10=(0001 1000 0101)BCD=(10111001)2
其中,BCD码需要12位,而二进制形式却只需要8位。显然,表示同一个数,BCD码比二进制需要更多的位。但是,用BCD码来表示十进制数仍然很重要,因为人们常用的计算机的输入输出数据需要用十进制形式。BCD码是十进制数,不是二进制数,即使它们都是采用二进制位的组合来表示。十进制数与BCD码的区别仅仅在于,十进制数的数字符号是0、1、2、…、9,而BCD码则用二进制编码:0000、0001、0010、…、1001。

相关文章
|
存储 Linux Shell
因误删文件导致CentOS7开机卡死无法进入图形登录界面
因误删文件导致CentOS7开机卡死无法进入图形登录界面
1503 0
因误删文件导致CentOS7开机卡死无法进入图形登录界面
《计算机组成原理》----2.7 浮点运算
浮点数不能直接相加。下面以一个简单的8位尾数和一个未对齐的指数为例说明浮点运算,A = 1.0101001×24,B = 1.1001100×23。若要计算这两个数的乘积,应将尾数相乘,指数相加;即 A·B = 1.
4416 0
|
20小时前
|
云安全 人工智能 运维
阿里云SecOps Agent,全新安全跨产品执行体验
自然语言驱动 云安全中心/WAF/CFW/ 等多款安全产品联动
1555 0
|
11天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
12天前
|
JavaScript 定位技术 API
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
CodeGraph 是一款爆火的本地代码智能工具,通过 tree-sitter 解析 AST 构建结构化知识图谱(存于 SQLite),为编程 Agent 提前生成“代码地图”。它显著降低 Agent 在中大型项目中的探索成本——实测工具调用减少71%、Token 降57%、速度提升46%,支持19+语言及主流框架路由识别,完全离线、无需 API Key。
849 11
CodeGraph 爆火:编程 Agent 需要的不是更多上下文,而是一张提前画好的代码地图
|
12天前
|
人工智能 运维 JavaScript
阿里云Qoder CN(原通义灵码)全解析 产品形态、版本划分与技术适配说明
在AI辅助开发与智能办公工具持续普及的当下,阿里云旗下原通义灵码正式更名为Qoder CN,同时延伸出QoderWork CN、Qoder CN CLI、Qoder CN Mobile等多款配套产品,形成覆盖代码开发、日常办公、终端交互、移动端使用的完整工具矩阵。Qoder CN核心定位为AI智能编码助手,深度适配主流代码编辑器、集成开发环境以及终端场景;QoderWork CN则偏向桌面端综合办公辅助,二者面向不同使用场景,划分了多个版本档位,搭配差异化资源配额、功能权限与计费规则,同时兼容多款主流大模型。
866 8
|
17小时前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
190 0
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~