gpt4 book ai didi

c - 高于 32767 的短整型值

转载 作者:行者123 更新时间:2023-12-04 10:40:15 43 4
gpt4 key购买 nike

当试图在 C 中存储大于 32,767 的短整数值时,只是为了看看会发生什么,我注意到打印到屏幕上的结果是我试图存储的数字 - 65,536。例如。如果我尝试将 65,536 存储在一个短变量中,则打印到屏幕上的数字为 0。如果我尝试存储 32,768,我将 -32,768 打印到屏幕上。如果我尝试存储 65,546 并将其打印到屏幕上,我会得到 10。我想你明白了。为什么我会看到这些结果?

最佳答案

整数值使用 Twos Complement 存储.在二进制补码中,可能值的范围是 -2^n2^n-1,其中 n 是用于存储的位数。由于存储完成的方式,当您超过 2^n-1 时,您最终会回到 2^n

短裤使用16 位(15 位用于数字存储,最后一位是符号)。

编辑:请记住,不能保证会发生此行为。编程语言的行为可能完全不同。从技术上讲,高于或低于最大/最小值是未定义的行为,应该这样对待。 (感谢 Eric Postpischil 让我保持警惕)

关于c - 高于 32767 的短整型值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17386796/

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