深入理解计算机系统之学习笔记三
【摘要】 由于第一章部分内容暂时用不到,所以先跳过,等回头再来学习。part 1 program strcture and execute1. basic data type2. how to manipulate data3. c program to instructionCH2 信息的表示和处理bit组合在一起,再加上某种interpretation就可以表示任何有限集合的元素。其实也就是编码方...
由于第一章部分内容暂时用不到,所以先跳过,等回头再来学习。
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位编译器可能会导致每种数据类型占用的字节数不同。这就可能会造成移植性的问题。因为指针类型会用到机器的全字长。所以比如在跨平台下,类型强制转换就会出问题。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)