定点数

二进制、十进制和十六进制的转化

对于2n2^n的 16 进制转化,最高位是2(nmod4)2^{(n \mod 4)},低位用n/4n/4个零补齐

nn2n(decimal)2^n(decimal)2n(hexadecimal)2^n(hexadecimal)
5320x20
2383886080x800000(3+4x5)

这个用的还比较多,比如一个 32 位的计算机,它可以寻址 0x0000~0xffff(0x10000-1),总共2322^{32}字节(4GB)。

显然 16 位中 A-F 和二进制、十进制的对应关系也需要熟记。

字节序

字节序 endian 这个词源于「格列佛游记」里面一个国家因为吃鸡蛋要敲大端还是小端引发争议。这里面指老的计算机普遍以大端存储数据即主观方式存储,而现有的主流机器都以小端存储,即反向存储。

int a=0x12345678;在大端上 a 的第一个字节是 12 而小端则是 78。历史上也出现过大小端机器互通导致 Unix 打成 nUxi 的故障。