《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①

1.信息存储

 虚拟内存被视为字节数组,每个字节都有唯一的数字(即它的地址)来标识;地址的集合即为虚拟地址空间;

指针包括值和类型:值表示某个对象的位置,类型表示那个位置所存储的对象的类型

1.1十六进制:在c语言中0x,0X开头的数字常量被认为是十六进制

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第1张图片

1.2字数据大小

字长:字长为x的机器,虚拟地址范围为0-2^x - 1

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第2张图片

1.3寻址和字节顺序

大端法:最高有效在前

小端法:最低有效在前

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第3张图片

1.4表示字符串

1.5表示代码

1.6布尔代数简介

2.整数表示

2.1整数数据类型

反码:正数的反码是本身,负数的反码是除了最高为都取反

补码:正数的补码是本身,负数的补码为 (源码的补码 + 1),这样可能会产生进位,高位丢弃,只保留源码的位数。

 

关于为什么int 的最小值是2的31次方

首先我们很清晰的知道,对于(-2^31) + 1 ~ 2^31 - 1 都有自己的源码表示,因为0存在+0和-0.这是没有必要的,所以计算时-0和-2^31的表示相同,在限定位数的情况下可以用-0来表示-2^31

 

 

2.2无符号数的编码

2.3补码编码

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第4张图片

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第5张图片
 

2.4有符号数和无符号数的转换:转换时,二进制位不变,但是解释规格改变导致值改变

 

2.6拓展一个数字的位表示

2.7截断数字:截断数字时有限丢弃高位

3.整数运算

3.1无符号加法

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第6张图片

  有符号加法溢出检测

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第7张图片

  无符号加法溢出检测

 

3.2补码加法

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第8张图片

-x = ~x + 1

3.4无符号乘法:溢出优先舍弃高位

3.5补码乘法:相当于先计算乘积然后mod 2^w 然后取补码

3.6乘以常数:因为乘法指令相当的满,所以编译器进行优化,尝试用(移位和加法)来代替乘以常数因子的乘法

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第9张图片

3.7除以二的幂:整数除以二的幂相当于右移

4.浮点数

4.1二进制小数

二进制小数的表示方法:

在二进制小数中小数点左移一位相当于被2除,右相当于乘

1/5可以用十进制精确的表示,而二进制不能精确表示它,我们可以通过表示的精度。例如:

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第10张图片

 

4.2IEEE浮点表示

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第11张图片

4.2.1规格化的值:解码被解释为有符号整数

4.2.2非规格化的值:①用来表示数字0②表示非常接近0的值

4.2.3特殊值(阶码全1):①小数域全0。当s=0时为正无穷,s=1时为负无穷②小数域非全0,代表一些运算的结果不是实数或无穷,如根号-1

4.3数字示例

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第12张图片

4.4舍入:找到“最接近”原值的浮点数,IEEE定义了四种不同的舍入方式

《深入理解计算机系统》第二章-信息的表示和处理 学习笔记①_第13张图片

4.5浮点运算:浮点加法尽量不适用结合律

 

你可能感兴趣的:(操作系统)