面试题答案
一键面试整数(Integer)
- 存储方式:在常见编译器下,通常以固定长度的二进制补码形式存储。例如,4字节(32位)的整数,最高位为符号位,其余31位表示数值。正数以原码形式存储,负数以补码形式存储(即绝对值的二进制取反加1)。
- 取值范围:对于4字节(32位)有符号整数,取值范围是 -2^31 到 2^31 - 1,即 -2147483648 到 2147483647。对于2字节(16位)有符号整数,取值范围是 -2^15 到 2^15 - 1,即 -32768 到 32767 。
实数(Real)
- 存储方式:通常按照IEEE 754标准的单精度浮点数格式存储,占用4字节(32位)。这32位分为三部分:1位符号位(S),8位指数位(E),23位尾数位(M)。实际数值表示为 (-1)^S × 1.M × 2^(E - 127) 。
- 取值范围:大约是 -3.4028234663852886 × 10^38 到 3.4028234663852886 × 10^38 ,精度大约为6 - 7位有效数字。
双精度实数(Double Precision Real)
- 存储方式:按照IEEE 754标准的双精度浮点数格式存储,占用8字节(64位)。64位分为三部分:1位符号位(S),11位指数位(E),52位尾数位(M)。实际数值表示为 (-1)^S × 1.M × 2^(E - 1023) 。
- 取值范围:大约是 -1.7976931348623157 × 10^308 到 1.7976931348623157 × 10^308 ,精度大约为15 - 17位有效数字。