gpt4 book ai didi

c - 整数常量的默认类型是有符号的还是无符号的?

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

整数常量的默认类型是有符号的还是无符号的?例如0x80000000,我如何决定将其用作有符号整数常量或不带任何后缀的无符号整数常量?

如果是有符号整型常量,下面的情况如何解释?

printf("0x80000000>>3 : %x\n", 0x80000000>>3);

输出:

0x80000000>>3 : 10000000

以下情况可以表明我的平台使用算术位移位,而不是逻辑位移位:

int n = 0x80000000;

printf("n>>3: %x\n", n>>3);

输出:

n>>3: f0000000

最佳答案

C 对于十进制、八进制和十六进制常量有不同的规则。

对于十进制,它是第一个值可以适应的类型:int, long, long long

对于十六进制,它是第一个值适合的类型:int, unsigned int, long, unsigned long , long long, unsigned long long

例如,在具有32 位 intunsigned int 的系统上:0x80000000无符号整型

请注意,对于十进制常量,C90 有不同的规则(但对于十六进制常量,规则没有改变)。

关于c - 整数常量的默认类型是有符号的还是无符号的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310456/

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