信息表示:位、字节、整数与浮点
0.1 + 0.2 在 C/Java 里都不等于 0.3;300 强转成 unsigned char 会变成 44;网络里收到的 0x12345678 在你本机读出来是 0x78563412。这三个"离谱"现象,根子都在同一个问题上:计算机怎么用 0/1 表示一个数。CSAPP 整门课都在讲"程序员的计算机系统视角",第一篇就从地基开始——信息表示。 1. 位、字节与字长计算机只能存两种状态,记作 0 和 1,一位就叫一个 bit(位)。8 个 bit 组成 1 字节(byte),这是内存编址的最小单位。所谓"机器字长",指 CPU 一次能处理的位数——64 位机器上指针就是 8 字节。写一段代码把"地基尺寸"打出来: 1234567891011#include <stdio.h>int main(void) { printf("sizeof(char) = %zu 字节\n", sizeof(char)); printf(...

