硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1224|回复: 3
收起左侧

mdk中写个常量0xffff0000 是个负数还是个正数?

[复制链接]

354

主题

2171

回帖

3238

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3238
发表于 2022-11-17 09:32:46 | 显示全部楼层 |阅读模式
本帖最后由 caicaptain2 于 2022-11-17 11:22 编辑

比如 uint32_t  i=123456789; (无符号)
判断i>0xffffffff  结果 是真还是假?
另外,如果定义 int32_t i=123456789;  (有符号)
判断i>0xffffffff  结果 是真还是假?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116229
QQ
发表于 2022-11-17 10:34:00 | 显示全部楼层
根据MISRA-C:2004的C规范要求,无符号常量,用户必须在后缀加字符u,指明无符号数。

然后如果比较的两个数据是无符号和有符号混合,要注意此贴问题

C测试1u > -1,  是TRUE还是FALSE
https://www.armbbs.cn/forum.php?mod=viewthread&tid=116419







回复

使用道具 举报

354

主题

2171

回帖

3238

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3238
 楼主| 发表于 2022-11-17 11:21:36 | 显示全部楼层
eric2013 发表于 2022-11-17 10:34
根据MISRA-C:2004的C规范要求,无符号常量,用户必须在后缀加字符u,指明无符号数。

然后如果比较的两个 ...

印象中,哪里有说道,所有十六进制表达,8进制表达,2进制表达方式都是无符号数。
但是,又找不到出处了。
回复

使用道具 举报

85

主题

784

回帖

1039

积分

至尊会员

积分
1039
发表于 2022-11-17 12:13:38 | 显示全部楼层
看你选择的标准,一般都是按照带符号数来算这个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 17:07 , Processed in 0.530584 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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