gpt4 book ai didi

c - 无符号和有符号数据比较及其在内存中的表示

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

unsigned short int uwVal1=-10;short int wVal2=-10;
if(uwVal1==wVal2)
printf("Something");

据我所知,每当将无符号类型与有符号类型进行比较时……有符号会暂时将其转换为无符号。所以按照这个逻辑......上面的代码应该打印“Something”。

如果我这样做...

    printf("%u",wVal2);    

它打印出 4294967286!...比 short int max +range 即 65535 大得多的数字。-10 的无符号值将是 65526。逻辑与我的想法不同吗?

最佳答案

是的,逻辑和你想的不一样。

STL 在 The Usual Arithmetic Conversions 上的视频对逻辑进行了全面解释。 .

(在比较中,双方 都被提升为 int,因此您正在比较 65526 和 -10。)

关于c - 无符号和有符号数据比较及其在内存中的表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19767516/

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