计算机中的数及其编码文章目录计算机中的数及其编码1 机器数和真值2 有符号数与无符号数3 原码、反码和补码3.1 原码3.2 反码3.3 补码4 数的定点和浮点表示方法4.1 定点表示法4.2 浮点表示法5 二进制编码5.1 二进制编码的十进制数BCD码5.2 字母和字符的编码ASCII码参考资料1 机器数和真值机器数是一个数在计算机中的表示形式这个数包括符号则称为真值。真值可以用二进制或十进制表示。例如N 1 1101001 B 105 N11101001B105N11101001B105则N 1 N1N1的机器数为 01101001。2 有符号数与无符号数有符号数的最高位是符号位其余位表示数值大小。最高位是 0 表示正数最高位是 1 表示负数。无符号数所有的位都用来表示数值大小。例如机器数 11001011 如果是有符号数则其真值为 -75如果是无符号数则其真值为 203。3 原码、反码和补码计算机对数据进行处理时需要把符号位和数值位一起进行编码这时就需要用到原码、反码和补码。原码、反码、补码是机器数的三种编码方案。3.1 原码原码是机器数的一种编码表示形式。原码表示的数不利于计算机进行加减运算因为计算机需要先判断数的符号然后再决定用加法还是减法这样会使运算过程变得复杂。为了解决这个问题引入了反码和补码。3.2 反码正数的反码就是其原码负数的反码是原码除符号位外各位取反。3.3 补码正数的补码就是其原码负数的补码是其反码加1。原码反码补码011010010110100101101001101001101101100111011010引入补码的目的是把加减法运算转化成单纯的加法运算。为理解这个转化过程需要了解模的概念。模是一个计数器能表示的数的个数例如一个 8 位二进制计数器可以表示的数的范围是 0 到 255则模是 256。如果计数器到最大值后再加 1则会发生溢出例如 255 加 1 为 256但 11111111 再加 1 就会溢出变成 00000000。因此256 和 0 在模 256 的系统里的表示形式是一样的。这里可以类比时钟来更好地理解模和补码。由于时钟能表示的数的个数是 12所以模是 12则 0 点和 12 点是同一个时间点。假设现在时钟显示的时间是 9 点如果想把时间调到 6 点可以逆时针调 3h记为 -3也可以顺时针调 9h记为 9。则 9-3699126这里将 -3 的减法运算转化成 9 的加法运算-3 的补码是 9。同理在模 256 的系统中计算 5-32先把 -3 转化成补码 253则 52532582562这里也是把 -3的减法运算转化成 253的操作。同时可以注意到在模 M 系统中负数补码 模 − 绝对值减法等价于加上补码。4 数的定点和浮点表示方法计算机中数有两种表示方法即定点表示法和浮点表示法。所谓定点表示法就是小数点在数中的位置是固定不变的所谓浮点表示法就是小数点在数中的位置是浮动的。对于任意一个二进制数总可以表示为N 2 P × S N2^P \times SN2P×S的形式其中 S 称为该数的尾数P 称为该数的阶码2 称为阶码的底。尾数 S 表示数 N 的全部有效数字阶码 P 指明小数点的位置。这里可以类比科学计数法不同的是科学计数法是 10 进制。例如123.45 1.2345 × 10 2 123.451.2345 \times 10^2123.451.2345×102。其中尾数 S 为 1.2345表示有效数字阶码 P 为 2表明小数点左移了 2 位。4.1 定点表示法当阶码P为固定值时这样的数称为定点数。计算机中常用的定点数有两种1定点纯整数当P0且尾数S为纯整数时只能表示纯整数。此时把小数点固定在最低数值位右边最高位为符号位小数点本身不占位。2定点纯小数当P0且尾数S为纯小数时只能表示纯小数。此时把小数点固定在最高数值位左边即符号位右边小数点本身不占位。例如8位二进制数11010100若是定点纯整数则为11010100.0B 即 -84若是定点纯小数则为-0.1010100B最高位1为符号位即 -0.65625。定点数的小数点是隐含的其位置由程序员预先设定好。由于小数点位置固定定点数所表示的范围小、精度低。例如8位带符号定点整数最大只能表示到127。4.2 浮点表示法如果阶码 P 不固定且可在一定范围内取值这样表示的数称为浮点数。为了在位数有限的前提下尽量扩大数的表示范围同时保持数的有效精度计算机往往采用浮点数表示数值。目前众多计算机厂家采用的是 IEEE 标准规定的浮点数表示方式单精度为 32 位双精度为 64 位Pentium 系列处理器采用的就是这种浮点表示方法。单精度浮点数的32位分为三部分符号位S1位阶码E8位尾数M23位S 为符号位S0 表示正数S1 表示负数。E 为带偏移量的指数单精度偏移量为127。因为指数有正的也有负的带偏移量是为了使指数都为正数减少数据处理的复杂度。M 为尾数表示成规格化形式时其整数部分和小数点被隐含起来机器中只保存小数部分。规格化就是把小数点移到第一个非 0 数字的右边因为二进制的非 0 数字只能是 1所以表示成规格化形式后都是 1.xxx 的格式所以整数部分和小数点可以隐含起来只保存小数部分。下面举一个例子以更好地理解单精度浮点数。将十进制数 219.125 表示成单精度浮点数第一步将十进制数化成二进制数219.125 11011011.001 B 219.12511011011.001B219.12511011011.001B第二步将二进制数化成规格化形式11011011.001 1.1011011001 × 2 7 11011011.0011.1011011001\times2^711011011.0011.1011011001×27指数为7第三步指数加上偏移量得到阶码E 7 127 134 10000110 B E712713410000110BE712713410000110B第四步写出浮点数符号位为 0 阶码为 10000110尾数为 10110110010000000000000。浮点数和定点数相比浮点数表示的范围大、精度相对较高但硬件实现较复杂定点数硬件简单但范围小、精度低。5 二进制编码5.1 二进制编码的十进制数BCD码计算机内部多采用二进制运算但二进制数书写起来很长、读起来也不方便。考虑到人们的习惯数在送入机器之前仍采用十进制编码运算结果也以十进制输出这项转换工作一般由机器来完成因而产生了一种适合十进制数的二进制代码的特殊形式即二进制编码的十进制数简称BCD码Binary Coded Decimal。BCD 码用 4 位二进制位来表示 1 位十进制数它指定 4 位二进制位从 0000 到 1111 共 16 种组合中的前 10 种依次表示 0~9 的 10 个十进制数码余下最后 6 种组合不用。BCD 码有两种形式即压缩BCD码和非压缩BCD码。1压缩BCD码每一位十进制数用 4 位二进制位表示一个字节表示两位十进制数。2非压缩BCD码用 1 个字节来表示一位十进制数高 4 位总是 0000低 4 位为 0000~1001 之间的数。两种BCD码的部分编码见下表。十进制数压缩BCD码非压缩BCD码0000000000000100010000000170111000001119100100001001要注意BCD码与真正的二进制数是不同的它貌似二进制实为十进制。通常用在计算机的输入/输出设备中作为计算机用的二进制与人们日常用的十进制之间的一种过渡性编码。5.2 字母和字符的编码ASCII码从键盘上输入的命令和数据多数为英文字母、标点符号和某些特殊符号都是非数值数据。计算机只能存储二进制位这就需要用二进制对各种字符进行编码以二进制代码形式存入计算机。目前国际上经常采用的字符编码是ASCII码American Standard Code for Information Interchange目前微型计算机的字符编码都采用ASCII码。ASCII码用7个二进制位对字符进行编码共有128个字符。由于内存存储信息采用字节单元因此将每个ASCII码最高位补0或作为奇偶校验位形成一个字节。ASCII码的128个字符可以分为两类1非打印的码这类编码是控制信息共有34个。例如DEL删除、CR回车、SP空格等。2可打印的ASCII码共有 94 个。其中数字 0~9 的编码为 30H~39H大写字母 A~Z 的编码为 41H~5AH小写字母 a~z 的编码为 61H~7AH。部分符号的 ASCII 码见下图。参考资料[1] 许立梓. 微型计算机原理及应用[M]. 北京: 机械工业出版社.文中图片均摘录自[1]仅用于学习交流如侵权请联系删除.
企业数字化 ERP 产品动态
相关推荐
《中小企业的专业化升级之路:专精特新战略解析》 本 84 页 PDF 为专精特新企业战略咨询实战材料,适配中小企业规划、产业咨询方案编制与企业内部战略研讨。解读专精特新政策梯度培育体系,对比隐形冠军模式,运用利基战略、兰彻斯特法则,剖析中小企业从 “小而美” 迈向 “大而强”… · 2026/9/24 17:30:03
DUNU DTC800频繁中断问题解决方案 20260917-20260923
By wdhuag 目录
前言:
参考:
1、供电不稳(导致断音):
2、接触不良(断连):
3、输出受其它应用影响(针对音量降低,独占对断音并无效果… · 2026/9/24 17:30:03
【八个月网安课程】第七周·周二:XSS 利用进阶——Cookie 窃取与会话劫持演示 以下是第七周周二学习内容。今天将亲眼见证 XSS 的真正威力——它远不止弹窗恶作剧,而是可以静默窃取用户登录凭证、劫持会话,甚至接管账户。你将在 DVWA 靶场上完成一次经典的存储型 XSS Cookie 窃取攻击,并深刻理解 HttpOnly 等防御措施的重… · 2026/9/24 17:30:03
从理论到落地:基于Jupyter Notebook的AI实战源码设计全攻略 简介:这份基于Jupyter Notebook的AI理论及应用实战设计源码,面向AI初学者、数据科学从业者及需要动手实践的开发者,覆盖机器学习、深度学习与自然语言处理等主流方向。压缩包共802个文件,约67.47MB,以61个ipynb交互式笔… · 2026/9/24 18:04:46
恒科超声波喷淋清洗机 高压水泵配合扇形喷嘴 清洗无死角 支持试机打样 随着国内制造业生产加工精度不断提升,零部件加工后处理环节对清洗工序的要求持续提高。壳体、阀体这类体积偏大的工件批量处理场景中,传统人工清洗或者单一浸泡清洗的方式,不仅人力投入大、处理效率低,还经常出现清洗死角… · 2026/9/24 18:04:46
粒子群算法优化支持向量机参数反演:自动调参实战 简介:本资源面向本科及以上阶段、从事回归预测建模与参数优化的学习者,提供一套基于MATLAB实现的粒子群算法与支持向量机参数反演完整方案。核心解决SVM核参数与惩罚因子依赖人工试凑、寻优效率低的问题,通过PSO自动搜索最优参数组合… · 2026/9/24 18:04:46
基于CNN的人脸表情识别系统源码解析:从训练到部署 简介:这份资源是面向计算机相关专业学生的Python期末大作业完整源码包,主题为基于CNN的人脸表情识别系统,适合正在做大作业或需要项目实战练习的学习者使用。项目经导师指导并获评审98分,源码均经本地编译与严格调试,可… · 2026/9/24 18:04:38
Springboot+Fabric信用区块链慈善救助系统:从毕设源码到链上信用落地 简介:这份资源是面向高校计算机相关专业学生的毕业设计完整源码,主题为基于Springboot与fabric信用区块链的慈善救助系统,适合作为毕业设计、期末大作业或课程设计的参考方案,难度适中,兼顾后端业务开发与区块链信用存… · 2026/9/24 18:04:31
C#联机扫雷实战:TCP协议、MVC分层与断线重连 简介:这份资源是开发者卢山基于C#与MVC框架实现的联机扫雷游戏项目源码,适合正在学习C#编程、MVC架构与网络应用开发的学生和初学者,用于理解桌面端与在线多人对战游戏的完整实现思路。压缩包共103个文件,约2.16MB,以c… · 2026/9/24 18:04:31
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44