gpt4 book ai didi

c - 为什么 0XAA 是无符号整数而不是整数?

转载 作者:太空狗 更新时间:2023-10-29 15:01:54 25 4
gpt4 key购买 nike

我从C Primer Plus,第 6 版,第 3 章的复习题中看到了这一点。

问题:

Question Picture

附录 A 中的答案:

Answer Picture

注意d.0XAA,我的答案是int常量,十六进制格式,但是答案是unsigned int

我想知道为什么

最佳答案

那本书不正确。根据 C11 6.4.4.1,十六进制整数常量的类型由下表确定:

Suffix    ...    Octal or Hexadecimal Constant

None ... int
unsigned int
long int
unsigned long int
long long int
unsigned long long int

u or U ... unsigned int
unsigned long int
unsigned long long int

您的常量 0xAA 没有后缀,因此上表的顶部部分适用。含义:编译器将首先检查该值是否适合 int。如果不合适,它将检查它是否适合 unsigned int 等等。

在任何已知的 C 实现中,值 0xAA 肯定适合 int。问题的正确答案是 int

但是,如果常量是 0xAAu,则将应用引用表的底部,结果将是 unsigned int

关于c - 为什么 0XAA 是无符号整数而不是整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40677072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com