4 个字节的 long 如何比 int 有更宽的范围?来源: http: //lwn.net/images/pdf/LDD3/ch11.pdf
问问题
141 次
2 回答
3
该 PDF 部分的重点是涵盖基础类型不同的情况int
。Linux 可以在各种机器上运行,比如手表和我的工作中价值数百万美元的大型主机。long
例如, on alpha
, ia64
and x86_64
(来自第 289 页的表格)int
是 4 个字节和long
8 个字节:
Size:
arch char short int long ptr long-long u8 u16 u32 u64
====== ==== ===== === ==== === ========= == === === ===
i386 1 2 4 4 4 8 1 2 4 8
alpha 1 2 4 8 8 8 1 2 4 8
armv4l 1 2 4 4 4 8 1 2 4 8
ia64 1 2 4 8 8 8 1 2 4 8
m68k 1 2 4 4 4 8 1 2 4 8
mips 1 2 4 4 4 8 1 2 4 8
ppc 1 2 4 4 4 8 1 2 4 8
sparc 1 2 4 4 4 8 1 2 4 8
sparc64 1 2 4 4 4 8 1 2 4 8
x86_64 1 2 4 8 8 8 1 2 4 8
因此,您的问题标题是一个谬误。四字节(或八字节)long
几乎肯定会比两字节(或四字节)的范围更广int
。
请参阅该 PDF 中的以下引用:
问题是当您需要“2 字节填充符”或“表示 4 字节字符串的东西”时,您不能使用标准类型,因为普通 C 数据类型在所有体系结构上的大小都不相同。
于 2013-03-13T05:38:18.640 回答
0
int
并且float
具有相同的位数,但使用不同的数字表示方式:
于 2013-05-20T15:10:13.120 回答