August 2021
Intermediate to advanced
450 pages
10h 35m
Chinese
一个字节可以看作8个位的序列:
注意,位编号的习惯顺序是由右(最低有效位)至左(最高有效位)。类似地,一个字也可看作4个字节的序列:
编号顺序同样是由右至左,即从最低有效位到最高有效位。这两个图过分简化了现实世界中的情况:曾经存在一个字节有9位的计算机(虽然没有一台的寿命超过十年),而一个字包含两个字节的计算机就更常见了。不过,只要你记得在使用“8位”和“4字节”这两个特性之前查阅一下系统手册,就不会出现问题了。
如果希望程序是可移植的,那么请在程序中使用<limits>(见24.2.1节)以确保类型大小不会弄错。为了方便编译器的检查,可以在程序中加入断言:
一个static_assert的第一个参数是一个常量表达式,它应该为真。如果它不为真,即断言失败,编译器会将第二个参数(一个字符串)作为错误消息的一部分输出。
在C++中我们如何来表示一组二进制位呢?答案取决于我们要处理多少位,以及希望哪些操作更方便和高效。我们可以将整型值当作一组二进制位来使用:
·bool——1位,但占用整个字节的空间。 ...