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

1.信息存储

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

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

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

1.2字数据大小

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

1.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补码编码


 

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

 

2.6拓展一个数字的位表示

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

3.整数运算

3.1无符号加法

  有符号加法溢出检测

  无符号加法溢出检测

 

3.2补码加法

-x = ~x + 1

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

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

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

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

4.浮点数

4.1二进制小数

二进制小数的表示方法:

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

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

 

4.2IEEE浮点表示

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

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

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

4.3数字示例

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值