- 进制转换
- 定点表示
- 机器数:编码后的表示
- 真值
- 原码表示
- 补码表示:$X_c=(M+X)\pmod M$
- 反码表示
- 移码:表示浮点数
- 浮点表示
- $X=(-1)^SMR^E$
- $M$: mantissa
- $E$: exponent
- $R$: radix
- IEEE 754
- FLOAT: 1+8+23
- DOUBLE: 1+11+52
- Intel FPU: 1+15+(1)+63
- 偏置常数 B: $2^{n-1}-1$
- 分类
- 0: -0/+0
- 非规格化数:$(-1)^s * 0.f *(1-B)$
- 全1阶码全0尾数:$\infty$
- 全1阶码非全0尾数:NaN(分静止的和通知的)
- 规格化数:$(-1)^s1.f2^{e-B}$
- 浮点运算的舍入
- 右规时,直接截断
- IEEE754 至少两位附加位(guard,round,sticky)
- 就近舍入到偶数
- 整数表示
- 有符号: $-2^{n-1}\sim(2^{n-1}-1)$
- 整数常量(无后缀)
- C90 : int - $*$ - unsigned long int
- C99 : int - $*$ - long long int
- BCD码
- 数据宽度
- 字长 word size:指明指针数据的标称大小(决定虚拟地址空间最大大小)
- KMGTPEZY
- 小端:MSB在大地址中
#pragma pack(n)
设置对齐方式
__attribute__((n))
设置单独的对齐方式,大于n的数据结构按n对齐