单片机中带符号数的表示法及运算规则

发布者:delta14最新更新时间:2015-08-10 来源: 21ic关键字:单片机  带符号数  表示法  运算规则 手机看文章 扫描二维码
随时随地手机看文章
一、机器数与真值
二、原码
按上所述,正数的符号位用"0"表示,负数的符种表示法就称为原码。表示法就称为原码。
X=+105 [X]原=01101001
X=-105 [X]原=11101001
三、反码
正数的反码表示与原码相同,最高位为符号位,用"0"表示正,其余位为数值位。
(+4)10=0 0 0 0 0 1 0 0
符号 二进制数值
(+31)10=0 0 0 1 1 1 1 1
(+127)10=0 1 1 1 1 1 1 1
而负数的反码表示为它的正数的按位取反(连符号位)而形成的。
(+4)10=0 0 0 0 0 1 0 0 单片机
(-4)10=1 1 1 1 1 0 1 1 ----反码表示
(+31)10=0 0 0 1 1 1 1 1
(-31)10=1 1 1 0 0 0 0 0 ----反码表示 单片机
(+127)10=0 1 1 1 1 1 1 1
(-127)10=1 0 0 0 0 0 0 0 ----反码表示
(+0)=0 0 0 0 0 0 0 0
(-0)=1 1 1 1 1 1 1 1 ----反码表示 单片机
四、补码
正数的补码表示与原码相同,即最高位为符号位,用"0"表示正,其余位为数值位。如【+4】补=【+4】原=【+4】反=0 0 0 0 0 1 0 0
【+127】补=【+127】原=【+127】反=0 1 1 1 1 1 1 1
负数的补码表示为它的反码,并在其最后位(即最低位)加1形成。
如 【+4】原=0 0 0 0 0 1 0 0
【-4】反=1 1 1 1 1 0 1 1 是+4各位取反 【-4】补=1 1 1 1 1 1 0 0 反码+1
【+31】原=0 0 0 1 1 1 1 1
【-31】反=1 1 1 0 0 0 0 0
【-31】补=1 1 1 0 0 0 0 1 单片机
【+0】原=0 0 0 0 0 0 0 0
【-0】反=1 1 1 1 1 1 1 1
【-0】补=0 0 0 0 0 0 0 0
8位带符号数的补码特点:(1)【+0】补=【-0】补=0 0 0 0 0 0 0 0
(2)8位二进制补码所能表示的数值为+127~-128
(3)一个用补码表示的二进制数,最高位为符号位。当符号位为"0"(即正数)时,其余七位即为此数的二进制值;当符号位为"1"(即负数)时,其余几位不是此数的二进制值,把它们按位取反,且在最低位加1,才是它的二进制值。
如:【X】补=1 0 0 1 0 1 0 0 是负数,它的数值为0 0 1 0 1 0 0 按位取反,
得1 1 0 1 0 1 1,然后再加1为1 1 0 1 1 0 0=(108)10
当负数采用补码表示时,就可以把减法转换为加法。
例如: 64-10=64+(-10)=64+【-10】补
+64=0 1 0 0 0 0 0 0
10=0 0 0 0 1 0 1 0
【-10】补=1 1 1 1 0 1 1 0
减法运算: 64 0 1 0 0 0 0 0 0
-10 - 0 0 0 0 1 0 1 0
-------------- ----- -----------------------------------------------------------------------------------------------
54 0 0 1 1 0 1 1 0
补码加法:
64 0 1 0 0 0 0 0 0
+【-10】补 ------> (+) 1 1 1 1 0 1 1 0
-------------- ----- ----------------------------------------------------------------------------------------------
1 0 0 1 1 0 1 1 0
此1自然丢失。在8位字长的单字节运算中
第7位的进位,自然丢失。
例:34-68=34+【-68】补 单片机
【34】补=0 0 1 0 0 0 1 0
【+68】补=0 1 0 0 0 1 0 0 单片机
【-68】补=1 0 1 1 1 1 0 0
34 0 0 1 0 0 0 1 0
+(-68) + 1 0 1 1 1 1 0 0
-------------- ----- ------------------------------------->--------------------------------------------------------------
- 34 1 1 0 1 1 1 1 0 符号位为1,肯定结果为负,其数值部
所以结果是-34
在微型机中,凡是带符号数一律是用补码表示的,所以,其运算结果也是补码。当字长为8位时,其范围为+127~-128。当运算结果超出这个表达范围时,结果就不正确了,这就称为溢出。这时要用多字节来表示。单片机
通常用最高位作为符号位,若字长为8位即D7为符号位,D6~D0为数字位,
符号位用0表示正,用1表示负如X=(01011011)B=+91
X=(11011011)B=-91
关键字:单片机  带符号数  表示法  运算规则 引用地址:单片机中带符号数的表示法及运算规则

上一篇:单片机C语言程序设计师试题
下一篇:柳晶单片机双向晶闸管接口MDK160

推荐阅读最新更新时间:2024-03-16 14:27

STM8单片机基本硬件线路设计
  其实STM8可以不需要晶振跟复位电路,但是为了最小系统能够稳定运行,所以最好增加外部电路。 ● STM8复位电路设计   STM8单片机内置上电复位(POR),所以,STM8单片机可以不设外部上电复位电路,依然可以正常复位,稳定工作。 若是系统需要设置按键复位电路,那么注意,STM8单片机是低电平复位,如下图,设计按键复位电路: ● STM8震荡电路设计 STM8单片机内置RC振荡电路。出厂时,未进行时钟源设置的STM8,其时钟源使用的是内部16M高速RC振荡器,然后经过8分频则是2M频率。 通过程序对寄存器的设置,可以设置MCU的内部RC振荡频率。例如:4M、8M等。不过,内置RC振荡,在一致性方面存在差异,它因生
[单片机]
STM8<font color='red'>单片机</font>基本硬件线路设计
51单片机 16X16点阵循环滚动显示汉字
一、效果展示 二、所用材料 1.16X16点阵 Proteus并不提供16X16的点阵,只能我们自己通过4个8X8的组装为16X16的点阵。 由此可知8*8变成16*16 列需要这样连接: 行需要这样连接: 再把四个放在一起即可: 2.74hc595 详细介绍见我上一篇文章 https://blog.csdn.net/qq_41639829/article/details/82151706 这里需要用到级联,也不算太难,就相当于原来是输入8个数,这需要输入16个,然后再输出,前八个输入的就被自动挤到级联的下一个595中了! 3.stc89c52 三、原理 1.静态显示 同8位的静态显示一
[单片机]
51<font color='red'>单片机</font> 16X16点阵循环滚动显示汉字
单片机中 负跳变和高脉冲是什么
在单片机中,负跳变指平由变成的过程,也叫下降沿,高脉冲就是正脉冲,给一个。   负跳变指令检测它前面的逻辑状态。如果上个程序扫描周期是1,本周期是0,则它后面的逻辑状态在本周期的剩余扫描时间内为1, 该指令仅在一个扫描周期内有效。   高脉冲即从逻辑0变化到逻辑1再变化到逻辑0,如此便是一个高脉冲。在单片机中定义高脉冲就是让某个I/O先输出逻辑0,接着保持一定的时间(延时),再输出逻辑1,同样保持一定的时间(延时),最后再转变输出为逻辑0+延时。
[单片机]
AT89C51单片机快热式热水器程序设计
快热式热水器程序MCU AT89C51 XAL 12MHz //#pragmaSRC #include #include #include voiddelay(unsignedint);//延时函数 voiddisplay(void);//显示函数 unsignedcharkeysCAN(void);//按键扫描处理函数 voidheatCTRl(void);//加热控制函数 voidtemptest(void);//测温函数 sbitswkey=P1^0;//开关键 sbitupkey=P1^1;//加热档位“+”键 sbitdownkey=P1^2;//加热档位“-”键 sbitbuzz=P1^05;//蜂鸣器输出端 sbit
[单片机]
AT89C51<font color='red'>单片机</font>快热式热水器程序设计
msp430单片机之时钟模块
毕业后我对嵌入式行业很感兴趣,所以我毫不犹豫的开始了我的自学之路,但是自学的难度对我来说还是很大的,因为基础差,所以一切都得从头开始学。那么怎么开始呢?这又是一个问题,后来在网上看到许多大神的文章,对我们这些新手还是有点指导意义的,我决定从单片机开始入门,分软件和硬件两部分,每周做一个学习总结,用博客来记录本周学习的内容,现在开始咯! 我们可以把单片机分成许多小模块,包括如下常用模块:时钟、看门狗、定时器、A/D、D/A转换、UART等等。那么我开始一个模块一个模块的进行学习。弄清楚每个模块是怎么使用的,然后再串联起所有模块,使整个系统能正常运作。 首先我们来看看时钟模块吧!时钟模块可以说是单片机中最为重要的几个
[单片机]
msp430<font color='red'>单片机</font>之时钟模块
基于单片机的A/D数字电压表设计
工作原理: ADDA/ADDB/ADDC 输入3位地址,并使ALE=1,将地址存入地址锁存器中 ALE:地址锁存允许信号接入端,高电平时允许改变CBA的值,低电平时锁死,防止在A/D转换过程中切换通道 地址经译码选通8路模拟输入IN0~IN7之一到比较器,输入与被选通道关系 START端上升沿将逐次逼近寄存器复位,下降沿启动A/D转换 EOC输出信号变低电平,表示正在转换;当A/D转换完成,EOC变为高电平,结果数据已存入锁存器。 OE输入高电平,输出三态门打开,转换结果的数字量输出到数据总线上。 OE=1时,D0-D7引脚上为转换后的数据,当OE=0时,D0-D7为对外呈现高阻状态 p.s. 其他引脚: I
[单片机]
基于<font color='red'>单片机</font>的A/D数字电压表设计
NXP 120亿联姻Freescale,MCU和汽车半导体霸主出世
增强了NXP在 智能世界的安全连接 中的领导地位 成为了全球第一的汽车半导体厂商 成为了全球第一的通用MCU半导体厂商 此次合并将缔造一个高性能的混合信号半导体行业的领导者,有超过100亿美元的收入总和。合并后的公司将成为汽车半导体解决方案和通用微控制器(MCU)产品的市场领导者。合并后的公司将把握住对安全、连接和处理的更多需求所带来的机遇。 今天的宣布是一个变革的步骤,我们的目的是成为高性能混合信号解决方案的行业领导者。结合NXP和飞思卡尔在高成长的智能世界创建一个强大的集团。我们期待继续在整体市场显着增长,推动世界一流的盈利能力并挣得更多的现金,两家的结合将使得飞思卡尔和NXP公司的股
[半导体设计/制造]
NXP 120亿联姻Freescale,<font color='red'>MCU</font>和汽车半导体霸主出世
80C51单片机的定时器/计数器介绍
定时器/计数器介绍 定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。 TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软件清除。 TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。 在现在很多新MCU中,不只有两个 定时/计数器,例如STC15系列就有四个定时/计数器,但是在使用上操作上是大同小异的。
[单片机]
80C51<font color='red'>单片机</font>的定时器/计数器介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved