CSAPP阅读笔记

chap2

2017-10-19  本文已影响0人  xbover

1. 大多数计算机使用块(8位) 或者一个字节作为最小的可寻址的内存单位。

2. 32位程序 or 64位程序,区别在于程序是如何被编译的,而不是运行的机器类型 。

3. c语言中没有规定有符号数如何表示,但是几乎所有机器都使用补码表示。

4. 声明一个无符号常量,在常量的后面加上u或者U 如1234U   1234u

5. 

6. 当执行一个运算时,一个数为有符号,另一个数为无符号,那么有符号数会隐式转换为无符号数,这对于普通的运算没有多大影响,但是当执行< or > 关系运算时,会导致非直观的结果。比如 执行  -1 < 0U,由于0U是无符号数,-1被强制转换为无符号数,假设32位系统,-1转换为无符号后为2^32-1,小于1为FALSE

7.

8. signed和unsigned数十六进制是一样的

9. 无符号数用零扩展,补码数用符号位扩展。

10. 截断数字。无符号截断:

有符号截断:

11. -Tmin等于Tmin!!!

12. 无符号数的加法

13. 补码 加法

14. 补码的非

15. 无符号数的非

16. 无符号数截断为w位等于计算该值模2^w

17. 无符号数乘法

18. 补码乘法

上一篇 下一篇

猜你喜欢

热点阅读