深入理解计算机系统(二)—— 信息表示和处理

本文探讨了《深入理解计算机系统》第二章的内容,包括信息的存储,其中字节是计算机最小的可寻址单位。接着解释了32位和64位系统的区别,主要涉及虚拟地址空间的最大大小。最后介绍了大小端的概念,大端法和小端法在内存中的数据排列方式,并指出现代处理器虽支持双端法,但操作系统通常固定字节顺序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近在学习《深入理解计算机系统》这本书,第二章是信息的表示和处理,讲了很多具体数据的表示方法(进制转换,整数表示,浮点数表示等)。

信息存储

首先我们先来想下,计算机需要的程序/数据/指令等在计算机里是如何存储的呢?计算机在访问这些信息的时候,是访问每一个bit么?错!字节(byte=8 bit),才是计算机中最小的可寻址的单位。机器级程序将内存视为一个非常大的字节数组,也就是虚拟内存。内存的每个字节都由一个唯一的数字来标识,就是地址,所有可能地址的集合就是虚拟地址空间。虚拟地址空间只是一个展现给机器级程序的概念性映像,实际的实现是将DRAM/内存/磁盘/硬件和操作系统软件结合起来实现的,非常复杂!后面再说吧!

32位系统?64位系统?

之前装电脑,经常听到人说装的是32位还是64位系统,这个32/64到底指的是什么呢?其实这里指的是字长,虚拟地址是以这样一个字来编码的,所以字长决定的最重要的系统参数就是虚拟地址空间的最大大小。也就是说,对于一个字长为w位的机器而言,虚拟地址的范围为0 - (2^w-1), 程序最多访问2 ^ w个字节。

大小端

需要在内存中存储的数据有时候非常多,那就引发了另一个问题,这一大堆字节在内存中要如何排列呢?机器一般有2种方式可以选择:大端法和小端法。直接上图吧!一般来说,小端法更适合正常人的思维。。
在这里插入图片描述
现在比较新的处理器都已经支持双端法,也就是可以把他们配制成作为大端和小端的机器运行。然而,实际情况是:一旦选定了特定的操作系统,那么字节顺序也就固定下来。比如,手机上的ARM微架构处理器,硬件可以支持大端和小端,但是上面的操作系统Android和IOS,却只能支持小端模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值