gpt4 book ai didi

c - 通过位操作获取 INT_MAX

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

如何在 C 语言中仅使用按位运算符获取 INT_MAX 的值?我希望 ~01111111111(1 的补码,所以十进制 -1)和 ~ 0 >> 10111111111,这将是最大值,但它仍然是 -1

为什么会这样,如何使用位运算获取 INT_MAX 的值?

最佳答案

尝试 ~0UL >> 1。问题是,如果 C 正在处理带符号的类型,它将进行符号扩展右移。这就是为什么你仍然得到负数的原因——因为它正在移动另一个 1 位以匹配那里的 1 位。 (这样 -8 >> 1 就可以得到 -4,因为您希望快速除以二。)

关于c - 通过位操作获取 INT_MAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9402386/

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