深入理解计算机系统之学习笔记三

举报
herosunly 发表于 2022/04/11 16:28:38 2022/04/11
【摘要】 由于第一章部分内容暂时用不到,所以先跳过,等回头再来学习。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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。