打印
[技术问答]

请教大家一个问题

[复制链接]
639|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我的基础比较差,也没有系统的学过c语言。现在有一个简单的问题请教一下大家。
uchar a=1,b=2,c;
c=a-b;
请问c的计算结果为什么不是0,而是255?

使用特权

评论回复

相关帖子

沙发
赛元MCU3| | 2019-6-6 13:44 | 只看该作者
uchar是8位,a-b=-1,有符号负数的补码为【X】=模-|X|=28-1=255

使用特权

评论回复
板凳
qq986433936|  楼主 | 2019-6-6 13:56 | 只看该作者
谢谢版主。我在用sc92f7250设计自动大灯,ADC输入通道是AINO,只取高8位转换结果。有个计算:ADC_AIN0()-178,当输入低于1.6v左右,计算结果就像您所说的产生补码,不是我想要的0。故有此疑问。我的程序都已经调通,各种中断、定时器、看门狗、ADC、单总线通讯应答都没问题,仅是这个问题懵逼了一天。谢谢了

使用特权

评论回复
地板
qq986433936|  楼主 | 2019-6-6 14:19 | 只看该作者
说一下,当我发现这个出错的问题,搞不懂的情况下,我用一个笨办法,用点亮一个LED指示灯来做判断。水平不高,只能这么傻傻的干了,,嘿嘿。

IMG_20190606_140443.jpg (219.01 KB )

IMG_20190606_140443.jpg

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

230

帖子

0

粉丝