【发布时间】:2023-03-17 07:20:01
【问题描述】:
什么是类型的大小将决定一个变量可以容纳多少不同的可能值
例如在我的书中,它说一个 char 变量可以保存从 -128 到 127 的值范围
我只是想理解粗体字的含义。
【问题讨论】:
-
它暗示了你所引用的内容。如果您比较 16 位(2 字节)宽的变量所涵盖的范围,它会变得更清楚。
256 * 256,一些 64k,或 -32k 到 + 32k-1 -
类型的大小决定了它包含多少位。如果
char是 8 位(并非总是如此),它可以容纳 2^8 = 256 个不同的值。这些代表0..255还是-128..127取决于类型是unsigned还是signed。 -
变量的大小是它占用的内存位数,它限制了可以存储的数字范围。例如,在 1 位变量中可以存储 2 个值,在一个字节中可以存储 2^8 = 256 个数字(0..255 或 -128..+127)。
-
书错了。类型的大小,即其中的位数,将决定该类型变量可以容纳多少值的上限。 n 位有 2^n 种不同的设置,因此具有 n 位的类型可以表示最多 2^n 个值。但是,一个类型表示的值是由该类型的语义决定的。某些位组合可能表示与其他组合相同的值(例如,1.234•10^3 和 12.34•10^2 的十进制浮点位)或可能根本不表示有效值(例如,32 位指针类型,当地址空间只有 24 位)。