打印

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

[复制链接]
1046|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 | 只看该作者
在编译器里面可以设置么?

使用特权

评论回复
5
llljh|  楼主 | 2022-4-11 23:55 | 只看该作者
我想要的结果是小减大结果为0,该在哪里设置?

使用特权

评论回复
6
dengdc| | 2022-4-11 23:58 | 只看该作者
无符号可不就是这样么,没见过减法还自带限幅的

使用特权

评论回复
7
tail066| | 2022-4-12 17:22 | 只看该作者
直接试一下不就行了么,跟踪下结果

使用特权

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

使用特权

评论回复
9
stly| | 2022-4-12 21:44 | 只看该作者
98-99 结果为 65535,是产生了借位,STATUS寄存器中C比特置位,指示这种情况。

使用特权

评论回复
10
xxrs| | 2022-4-12 21:48 | 只看该作者
这个减法真实的结果是-1

使用特权

评论回复
11
shimx| | 2022-4-12 21:50 | 只看该作者
只有使用有符号数才能正确表达负数

使用特权

评论回复
12
jiajs| | 2022-4-12 21:52 | 只看该作者

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

使用特权

评论回复
13
jlyuan| | 2022-4-12 21:54 | 只看该作者
否则程序就会出错。这一点是需要格外当心的。

使用特权

评论回复
14
pangb| | 2022-4-12 21:56 | 只看该作者
你自己都知道无符号,你还问个负数怎么显示。

使用特权

评论回复
15
yufe| | 2022-4-12 21:58 | 只看该作者
当然显示没错,是你定义类型有错。

使用特权

评论回复
16
heweibig| | 2022-4-12 22:00 | 只看该作者
这跟Mplab无关,这个是C语言本身的特性。

使用特权

评论回复
17
chuxh| | 2022-4-12 22:02 | 只看该作者
严重怀疑你不是专业编程的

使用特权

评论回复
18
supernan| | 2022-4-12 22:04 | 只看该作者
基础C语言的数据类型的问题...翻翻书吧.

使用特权

评论回复
19
dengdc| | 2022-4-12 22:06 | 只看该作者
这个和环境没关系。

使用特权

评论回复
20
jlyuan| | 2022-4-12 22:07 | 只看该作者

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

使用特权

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

本版积分规则

855

主题

11301

帖子

6

粉丝