pmlab x 里面小减大会出问题?

[复制链接]
559|28
手机看帖
扫描二维码
随时随地手机跟帖
llljh|  楼主 | 2022-4-11 23:45 | 显示全部楼层 |阅读模式

pmlab x 里面小减大会出问题?

使用特权

评论回复
huangchui| | 2022-4-11 23:48 | 显示全部楼层
什么意思?不是很明白你说的什么,能再解释一下这个现象吗

使用特权

评论回复
llljh|  楼主 | 2022-4-11 23:50 | 显示全部楼层
我在PMLAB X 里面定义了两个unsigned int的数,在做减法的时候发现一个现象:98-99 结果是65535,0-1000的结果是64536。是无符号的数,为何会这样?

使用特权

评论回复
jiaxw| | 2022-4-11 23:52 | 显示全部楼层
在编译器里面可以设置么?

使用特权

评论回复
llljh|  楼主 | 2022-4-11 23:55 | 显示全部楼层
我想要的结果是小减大结果为0,该在哪里设置?

使用特权

评论回复
dengdc| | 2022-4-11 23:58 | 显示全部楼层
无符号可不就是这样么,没见过减法还自带限幅的

使用特权

评论回复
tail066| | 2022-4-12 17:22 | 显示全部楼层
直接试一下不就行了么,跟踪下结果

使用特权

评论回复
zwll| | 2022-4-12 21:42 | 显示全部楼层
你得用计算机体系来理解这个问题,借位进位在底层是不会变的。有小减大的需求就用有符号,或者事先判断大小

使用特权

评论回复
stly| | 2022-4-12 21:44 | 显示全部楼层
98-99 结果为 65535,是产生了借位,STATUS寄存器中C比特置位,指示这种情况。

使用特权

评论回复
xxrs| | 2022-4-12 21:48 | 显示全部楼层
这个减法真实的结果是-1

使用特权

评论回复
shimx| | 2022-4-12 21:50 | 显示全部楼层
只有使用有符号数才能正确表达负数

使用特权

评论回复
jiajs| | 2022-4-12 21:52 | 显示全部楼层

开发者需要确保程序中的计算结果,在任何情况下,都是使用最合适的数据类型来表达。

使用特权

评论回复
jlyuan| | 2022-4-12 21:54 | 显示全部楼层
否则程序就会出错。这一点是需要格外当心的。

使用特权

评论回复
pangb| | 2022-4-12 21:56 | 显示全部楼层
你自己都知道无符号,你还问个负数怎么显示。

使用特权

评论回复
yufe| | 2022-4-12 21:58 | 显示全部楼层
当然显示没错,是你定义类型有错。

使用特权

评论回复
heweibig| | 2022-4-12 22:00 | 显示全部楼层
这跟Mplab无关,这个是C语言本身的特性。

使用特权

评论回复
chuxh| | 2022-4-12 22:02 | 显示全部楼层
严重怀疑你不是专业编程的

使用特权

评论回复
supernan| | 2022-4-12 22:04 | 显示全部楼层
基础C语言的数据类型的问题...翻翻书吧.

使用特权

评论回复
dengdc| | 2022-4-12 22:06 | 显示全部楼层
这个和环境没关系。

使用特权

评论回复
jlyuan| | 2022-4-12 22:07 | 显示全部楼层

用带符号数据类型来解决你的问题吧。

使用特权

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

本版积分规则

855

主题

11301

帖子

6

粉丝