b %s\n",a>b ? "true":-6ren">
gpt4 book ai didi

Char数据类型算术表达式

转载 作者:太空宇宙 更新时间:2023-11-04 05:10:08 26 4
gpt4 key购买 nike

int main()

{

char a = 'P';

char b = 0x80;

printf("a>b %s\n",a>b ? "true":"false");

return 0;

}

为什么它的计算结果为真?

最佳答案

在您的系统上,char 已签名。它也是八位,因此 0x80 溢出了带符号的 8 位整数可以表示的内容。结果值为 -128。由于 P 是某个正值,因此它大于 -128。

C 允许对 char 类型进行签名或未签名。这是一个特殊的(烦人的)属性,不同于其他整数类型,例如 int。通常建议使用 unsigned char 显式声明字符类型,以便行为更加确定而不是依赖于实现。

关于Char数据类型算术表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18663494/

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