尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

【微机原理与单片机】基础知识(二) 数制和编码

发布时间:2026/9/24 17:30:16

资讯中心
01
ARTICLE

【微机原理与单片机】基础知识(二) 数制和编码

【微机原理与单片机】基础知识(二) 数制和编码
计算机中的数及其编码文章目录计算机中的数及其编码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]仅用于学习交流如侵权请联系删除.
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。