我想了一下,对于4字节整数,我想出了以下公式:
32(^4) * 256 * 8
实际上真正返回4字节整数范围。我不确定如何。 这是正确的,为什么,如果不是......我怎么想呢?
使用该公式,我可以轻松计算任何范围。
答案 0 :(得分:2)
您可以使用limits.h中定义的常量来测试您的值是否适合您提供的变量。
答案 1 :(得分:1)
在two's complement(几乎所有现代计算机都使用的表示法)中,k
位的有符号整数范围为-2k-1 — 2k-1-1
,包括-(2k-1-1) — 2k-1-1
。在sign-magnitude and one's complement表示中,有两种可能的表示形式为0,范围是对称的:{{1}}。
如果需要在便携式C中表示,则需要担心整数溢出。此外,如果没有limits.h
,您就无法知道int
的位长是多少。如果您认为int
有32位(不保证),那么您可以使用((1UL<<31)-1)
作为最大可能的有符号整数。