CSAPP-Chap2 信息的表示和处理
信息存储
大部分计算机使用8位的块(字节)作为访问内存单独的位。
内存:很大的数组(虚拟内存(virtual memory)),字节位置即为地址
字数据大小
每台计算机都有一个字长 (word size), 指明指针数据的标称大小 (nominal size)
字长决定系统虚拟地址空间大小; 最近 32位->64位的迁移
数据类型可能因为32位或者64位而大小不同(int, char, …)。 因此,C语言给了一堆特定大小的数据类型(int32_t, int64_t…)
寻址和字节顺序
大端法和小端法:—最低有效字节在最前面的方式,称为小端法 (little endian)
最高有效字节在最前面的方式,称为大端法 (big endian)
网络传输数据可能有错误
ps: typedef声明:给数据类型命名
e.g.: typedef int *int_pointer;
布尔代数简介&C语言中的按位计算
![[Pasted image 20240630093522.png]]
![[Pasted image 20240630093539.png]]
| 就是 OR( 或),&就是 AND( 与),~就是 NOT(反),而^就是 EXCLUSIVE-OR( 异或/XOR).
逻辑运算:||, && 和!:短路性,如果对一个参数求值就能确定表达式的结果,那么逻辑运算符就不会对第二个参数求值。
移位运算: <<和>> similar to 61C
整数表示&小数表示
参考[[61C-P2-number]]
整数运算
加法:有符号数相当于把符号位变成了1,所以溢出时才会显示负数
无符号位就相当于简单地减了2^w
对应lab
data lab
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
