硬汉嵌入式论坛

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

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

[复制链接]

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3039
发表于 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万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106698
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







回复

使用道具 举报

334

主题

2032

回帖

3039

积分

版主

Rank: 7Rank: 7Rank: 7

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

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

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

使用道具 举报

75

主题

684

回帖

909

积分

金牌会员

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 09:10 , Processed in 0.164123 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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