用于确定处理器如何在某些位中存储整数的公式

时间:2014-08-11 16:08:33

标签: c memory-management integer

我想了一下,对于4字节整数,我想出了以下公式:

32(^4) * 256 * 8

实际上真正返回4字节整数范围。我不确定如何。 这是正确的,为什么,如果不是......我怎么想呢?

使用该公式,我可以轻松计算任何范围。

2 个答案:

答案 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)作为最大可能的有符号整数。