计算机系统漫游task02

虚拟地址空间

·内存的地址的集合称为虚拟地址空间

1 byte = 8bit

字数据大小

对于一个字长为位的机器,虚拟地址的范围是0到2^w - 1
在这里插入图片描述

寻址和字节顺序

在这里插入图片描述

寻址和字节顺序

在这里插入图片描述
我们需要知道数据的地址和数据所占内存
字节顺序有大端法和小端法

布尔运算

注意异或运算
在这里插入图片描述
C语言中的一个特性就是支持按位进行布尔运算

数值信息的表示

二进制数也有正负之分,在计算机中约定,在有符号数的前面增加1位符号位,用0表示正号,用1表示负号。这种在计算机中用0和1表示正负号的数称为机器数。目前常用的机器数编码方法有原码、反码和补码3种。

在这里插入图片描述
原码表示的数在计算机中进行加减法运算很麻烦,因此引入反码和补码
在这里插入图片描述
在这里插入图片描述
补码的意义:最高位不仅仅代表了负号,也代表了数值,这样我们仅通过补码就可以直接知道它对应的十进制数字,甚至不需要知道它的原码。

相互转化

有符号和无符号的转换:
先转换为二进制,再根据二进制进行转换

当有符号数从一个较小的数据类型转换成较大类型时,进行符号位扩展,最高位是0,扩展的数位进行补零,最高位是1时,扩展的数位需要补1

截断

将int 类型强制类型转换成short类型时,int类型高16位数据被丢弃,留下低16位的数据,可以改变数值。

  • 无符号数:
    将一个w位的无符号数,截断成k位时,丢弃最高的w-k位,截断操作可以对应于取模运算,即除以2的k次方之后得到的余数
  • 有符号数
    我们用无符号数的取余方式先得到余数,得到最低K位
    我们将第一步得到的无符号数转换成有符号数,再转成二进制。

加法溢出

无符号加法溢出,返回0
有符号加法溢出,
当x加y的和大于等于2w-1时,发生正溢出,得到的结果会减去2w
当x加y的和小于 - 2w-1时,发生负溢出,得到的结果会加上2w

两种乘法

无符号数乘法
w位的无符号数x和y,二者的乘积可能需要2w位来表示。在C语言中,定义无符号数乘法所产生的结果是w位,因此运行结果会截取低w位。因此,运行结果等于x与y乘积并对2的w次方取模。

补码乘法:
补码乘法比无符号乘法多一步,需要将无符号数转换成补码。

两种除法

以乘除2的倍数为例讨论
原码运算:对于原码,不论正负,若某个数字乘2w的倍数,则只需要对原码向左移动w个单位,空缺位补0
补码运算:正数按照原码规则计算,复数需要保证符号位不变,在向左移动时补0,向右移动时补1

二进制小数

在这里插入图片描述
IEEE 浮点表示
在这里插入图片描述
三个变量:符号S,阶码,和尾数M
C语言中float类型的变量占4个字节,32个比特位,这32个比特位被划分成3个字段来解释。
在这里插入图片描述
S= 0表示正数,S=1表示负数,8个二进制位与阶码的值E是相关的。剩余的23位与尾数M是相关的

在这里插入图片描述
浮点数的数值分为三类,第一类是规格化的值,第二类是非规格化的值,第三类是特殊值。阶码的值决定了这个数是属于其中哪一类。

规格化的值:阶码字段的二进制位不全为0,且不全为1
在这里插入图片描述
非规格化值:阶码字段的二进制全为0
在这里插入图片描述
特殊值:阶码字段二进制全为1

规格化的值

阶码E = e - bias
e表示8位二进制数,e_min = 1, e_max = 254

在这里插入图片描述
在这里插入图片描述
尾数M = 1 + f
在这里插入图片描述

非规格化的值

在这里插入图片描述

特殊值

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值