深入理解计算机系统之学习笔记三
由于第一章部分内容暂时用不到,所以先跳过,等回头再来学习。
part 1 program strcture and execute
1. basic data type
2. how to manipulate data
3. c program to instruction
CH2 信息的表示和处理
bit组合在一起,再加上某种interpretation就可以表示任何有限集合的元素。其实也就是编码方式。
主要讲解一下三种数据
1. unsigned integer 2. complement(补码)3.floating-point
计算机的表示法是用有限的位+编码方式来表示数据的。由于位数有限,所以可能会造成overflow。
再一次讲到权衡,也就是各有利弊。integer表示的数范围小,但是精确。而float表示的数范围大,但是是近似值。
机器级程序是把内存看作是一个非常大的字节数组,成为虚拟内存。虚拟内存的地址构成了virtual address space。
内存中主要存放了data, instruction, 控制信息。
练习题1.1和1.2
1.把十六进制转换成二进制 bin(0x39a7f8)
2.把二进制转换成十六进制 hex(1100100101111011)
3. 把十六进制转换成十进制 int(str, base=10),str就是数字转换成str
4. 把二进制转化成十进制 int(str, base=2)
2.1.2 字
每台计算机都有一个字长,指的是整数和指针数据的字节数。因为虚拟地址空间都是以这样的一个字来编码的,所以决定字长的是虚拟地址空间的最大大小。
2.1.3 数据大小
C 语言中不同数据类型分配的字节数,是和操作系统和编译器息息相关的。所以32位编译器和64位编译器可能会导致每种数据类型占用的字节数不同。这就可能会造成移植性的问题。因为指针类型会用到机器的全字长。所以比如在跨平台下,类型强制转换就会出问题。
- 点赞
- 收藏
- 关注作者
评论(0)