gpt4 book ai didi

c - "-1"在unsigned int和signed int的取值范围内代表什么?

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

我正在学习 C,并且有一个关于 unsigned int 和 signed int 值范围内的“-1”的愚蠢问题。我似乎无法在任何地方找到解释。

下面的段落解释了数据范围。但是,它没有解释“-1”。 “-1”代表什么意思?它是 -1 是因为它跳过 0 并且 0 没有值吗?

In 32-bit integers, an unsigned integer has a range of 0 to 2^32 -1 = 0 to 4,294,967,295 or about 4 billion. The signed version goes from -2^31 -1 to 2^31, which is –2,147,483,648 to 2,147,483,647 or about -2 billion to +2 billion. The range is the same, but it is shifted on the number line.

最佳答案

考虑使用 2 位可以实现的值:

00 : 0
01 : 1
10 : 2
11 : 3

有4个,2的2次方。
但是最高值不是4,是3。
最高值为 2 的 2 次方减 1。即在你的代表中

2^2-1
或 22-1

加一点,你得到两倍的数字,通过加

100 : 4
101 : 5
110 : 6
111 : 7

总数为 8,但最高为 7。

所以“-1”是因为总计 2n 中的第一个总是用于 0,
第 2 个用于 1,第 3 个用于 2。
最后第(2n)个不能用于2n,它已经用于2n-1.

关于c - "-1"在unsigned int和signed int的取值范围内代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57703450/

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