gpt4 book ai didi

使用强制转换将负整数转换为正整数

转载 作者:行者123 更新时间:2023-12-02 01:51:51 25 4
gpt4 key购买 nike

我想要以下想法:我有 short a = -4;unsigned Short b = (unsigned Short)a;当我 printf("%hu", b) 时,为什么它不打印 4?如何使用转换将负整数转换为正整数?

最佳答案

shortunsigned Short 通常是 16 位整数。因此,签名版本(short)的限制为 -32768 到 32767,unsigned Short 的限制为 0 到 65535。从有符号转换为无符号只是包裹值,因此-4将被转换为65532。

这是 C 语言中强制转换为无符号的方式。

如果您同意使用加法/减法,您可以执行以下操作:

65536l - (unsigned short) a

该操作将使用 long 类型(因为有 l 后缀),该类型要求至少为 32 位整数类型。这应该成功地将任何负短整数转换为其绝对值。

关于使用强制转换将负整数转换为正整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70155074/

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