《逻辑与计算机设计基础(原书第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。

相关文章
|
前端开发 JavaScript 开发工具
React Native SDK for OSS
此文主要介绍 React Native SDK for OSS的方方面面,包括相关基本概念、项目背景、项目方案、环境搭建运行、使用姿势、注意事项等。文末的附件可运行Example Zip压缩包和针对新手的入门实用文章《从0开始搭建React Native for OSS项目》。
7917 0
|
1月前
|
人工智能 Java API
2026年阿里云通义千问大模型API全栈接入教程:PHP/Java/.NET/Python/Go五语言完整实战
2026年阿里云DashScope作为通义千问官方API服务底座,提供两套标准化接入体系:专属原生SDK、OpenAI兼容通用接口,覆盖PHP、Java、.NET(C#)、Python、Go五大主流开发语言。本文从前置账号开通、两种调用方式区分、各语言环境配置、完整可运行代码、流式输出实现、参数精细化调优、异常捕获、生产安全与成本优化九大模块完整拆解,适配网站、后端服务、桌面程序、AI智能体、数据分析各类项目,零基础开发者与企业后端工程师均可直接复用全套工程代码,解决多技术栈统一集成大模型的落地难题。
651 1
|
1月前
|
人工智能 运维 NoSQL
OpenSpec 三阶段工作流实操:从 Propose 到 Archive让代码返工率降到三分之一以下
OpenSpec是AI原生规范驱动开发(SDD)框架,以Propose→Apply→Archive三阶段强制工作流,将需求精准转为AI可读、可验、可追溯的结构化规范,实测降低代码返工率超2/3。
287 0
|
2月前
|
人工智能 安全 关系型数据库
RDS Agent可观测能力正式邀测!全面支持Qoder、Codex、Claude Code、OpenClaw等主流研发Agent
阿里云RDS Agent可观测平台正式发布!面向Qoder、Codex等AI Agent,基于RDS MySQL+DuckDB列式分析底座,提供多Agent一键接入、Token/成本归因、ROI投入产出分析、风险回溯至Trace/Session、全链路下钻能力,助力团队从“使用Agent”迈向“治理Agent”。
|
11月前
|
传感器 人工智能 运维
AR智慧运维系统介绍
阿法龙XR云平台是一款面向工业领域的增强现实(AR)智能化平台,助力企业实现数字化转型。平台集成智能巡检工作流、远程协助、AI视频验收、人脸识别等功能模块,支持AR眼镜与移动终端,提供虚实融合的运维体验。具备高度定制化能力,适配多种工业场景,提升运维效率与智能化水平。
|
11月前
|
监控 文字识别 物联网
这是我写的实施一地两检的跨境高铁站旅客资料预报系统的系统架构
本系统参考民航APIS设计,实现青青草原国高铁跨境旅客资料预报与行程监控。通过铁路与移民管理部门数据联动,完成旅客购票、检票、乘车及退票等全流程边检预报与身份验证,保障一地两检高效合规运行。
435 2
|
机器学习/深度学习 搜索推荐 API
京东拍立淘API-以图搜图中的图像搜索算法
京东拍立淘API基于深度学习,利用CNN提取图像特征,结合余弦相似度实现商品精准匹配。支持图片搜索、类目限定与相似度筛选,日均处理千万级请求,广泛应用于移动购物与社交带货场景。
|
存储 Linux Shell
因误删文件导致CentOS7开机卡死无法进入图形登录界面
因误删文件导致CentOS7开机卡死无法进入图形登录界面
1552 0
因误删文件导致CentOS7开机卡死无法进入图形登录界面
|
机器学习/深度学习 存储 算法
DeepSeek元学习(Meta-Learning)基础与实践
元学习(Meta-Learning),又称“学会学习”,旨在通过少量数据或训练步骤使模型快速适应新任务。本文介绍如何使用DeepSeek构建和训练元学习模型,重点讲解基于优化的元学习方法MAML。我们从定义任务生成器、实现MAML算法到训练模型和快速适应新任务,提供了详细的代码示例和常见问题解决方案。通过本文,读者可以掌握元学习的基础与实践技巧,利用DeepSeek高效构建元学习模型。
|
人工智能 运维 云计算
阿里云无影AI云电脑亮相 体验大幅升级
9月20日,2024云栖大会上阿里云无影AI云电脑全新亮相,基于最新的终端云计算技术和AI大模型能力,无影的综合体验大幅提升,新增了弹性升降配、双网自由切换、多端操作系统知识库问答、编码大师等AI智能体功能,为安全办公、个人娱乐带来全新的云上流畅体验,更可畅玩《黑神话:悟空》等3A游戏大作。同时,无影还宣布向开发者全面开放应用中心生态,开发者可免费入驻。
2948 15

热门文章

最新文章