DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 256|回复: 0
打印 上一主题 下一主题

单片机机器数及编码

[复制链接]
跳转到指定楼层
楼主
发表于 2011-4-28 21:15:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
机器数及其编码

1、机器数与真值
机器只认识二进制数:0、1。
这是因为,电路状态常有两个,如通、断;高电平、低电平;…可用0、1表示。
这种0、1、0、1…1在机器中的表现形式——机器数。一般为8位。

2、机器数的编码及运算

对带符号数而言,有原码、反码、补码之分,计算机内一般使用补码。

1)原码
将数“数码化”,原数前“+”用0表示,原数前“-”用1表示,数值部分为该数本身,这样的机器数叫原码。
设X——原数;则[X]原=X(X0)
[X]原=2n-1–X(X0),n为字长的位数。
如,[+3]原=00000011B
[-3]原=27-(-3)=10000011B
0有两种表示方法:00000000+0
10000000-0
原码最大、最小的表示:+127、-128

2)反码
规定正数的反码等于原码;负数的反码是将原码的数值位各位取反。
[X]反=X(X0)
[X]反=(2n–1)+X(X0)
如,[+4]反=[+4]原=00000100B
[-4]反=(28–1)+(-5)=11111111-00000101=11111010B
反码范围:-128"+127
两个0;+0——00000000B
-0——11111111B
3)补码
补码的概念:现在是下午3点,手表停在12点,可正拨3点,也可倒拨9点。即是说-9的操作可用+3来实现,在12点里:3、-9互为补码。
运用补码可使减法 变成加法。
规定:正数的补码等于原码。
负数的补码求法:1)反码+1
公 式:[X]补=2n+X(X<0)
如,设X=-0101110B,则[X]原=10101110B
则[X]补=[X]反+1=11010001+00000001=11010010B
如,[+6]补=[+6]原=00000110B
[-6]补=28+(-6)=10000000–00000110=11111010B
8位补码的范围–128"+127。
0的个数:只一个,即00000000
而10000000B是-128的补码。
原码、反码、补码对照表:表1-2P10

4)补码的运算
当X≥0时,[X]补=[X]反=[X]原
[[X]补]补=[X]原
[X]补+[Y]补=[X+Y]补
[X-Y]补=[X+(-Y)]补
例:已知X=52Y=38求X-Y

计算机在做算术运算时,必需检查溢出,以防止发生错误

5)运算的溢出问题

资 料字长(位数)有一定限制,所以资料的表示应有一个范围。
如字长8位时;补码范围-128"+127
若运算结果超出这个范围,便溢出。
例:

错:两个负数相加和为正数。
可见:结果正确 (无溢出)时,Cs+1=Cs
结果错误(溢出)时,Cs+1≠Cs
溢出判断:溢出=Cs+1Cs(即结果是0为无溢出;1为有溢出)

十进制数的编码
对机器:二进制数方便,
对人:二进制数不直观,习惯于十进制数。
在编程过程中,有 时需要采用十进制运算,但机器不认识十进制数。
怎么办?
可以将十进制的字符用二进制数进行编码:

这叫做二进制数对十进制编码——BCD码。
上述每4位二进制数表示一个十进制字符,这4位中各位的权依次是:
8、4、2、1——8421BCD码。
BCD码的运算:

(1)BCD码加法规则
两个BCD数相加时,“某位”的和小于10则保持不变;
两个BCD数相加时,“某位”的和大于9,则和数应加6修正。
(2)BCD码减法规则
两个BCD数相减时,“某位”的差未发生借位,则差数保持不变;
两个BCD数相减时,“某位”发生了借位,其差应减6修正。
这里“某位”指BCD数中的“个位”、“十位”、“百位”、……
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2026-7-30 10:23 , 耗时 0.110737 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表