深入理解计算机系统(读书笔记)

来源:互联网 发布:拾柒软件下载 编辑:程序博客网 时间:2024/06/05 11:20

第二章

信息的表示和处理

二进制

计算机的信息存储和处理都是以二进制为基础的,通过一系列的0,1组合,我们能够去表示有限的整数和实数。
首先了解三种重要的符号表示方法:

  1. 有符号表示:用于表示大于或等于0的整数
  2. 无符号表示:用于表示有正有负的整数
  3. 浮点数:以科学计数法为基础的二进制表示方法

信息存储

在计算机内部数据是按照字进行存储的,字有着统一的虚拟地址空间地址,计算机按照指定地址对数据进行读取和写入操作。
字通常为8位,也就是说可以表示无符号的0x00-oxFF。而关于计算机能够进行寻址的空间大小通常由“字长”表示,我们常说的32位系统,意思是指字长为32位,也就是说其虚拟地址空间大小为
2^32-1
另外值得注意的一点是不同机器间可能存在着信息存储顺序上的差别:这种差别被称为大端法和小端法。
大端法:一个数据如果超过一个字的表示范围,由二个字以上表示时,则其字节存储顺序为最高有效字节在前。
小端法:则是最低有效字节在前。
直观的例子是:一个int型变量,其十六进值为0x12345,地址范围为0x100-0x103。则其在大端法计算机和小端法计算机中的存储顺序为:
这里写图片描述
大小端得叫法来源于《格列佛游记》里面关于两个派别关于吃鸡蛋先打破那一端的争论。
一般来说,程序员在编写程序的时候,不必关心系统式如何存储数据的。但是有时候,大小端的问题会显露出来,这时候就需要额外的注意,否则会带来程序的错误。尤其是在网络通信中,由于网络中存在着各式各样的机器,很有可能发生小端存储的机器将数据发送给大端存储的机器,或者反之,这时候就会产生错误,因此在网络编程中,都需要首先将自身的信息按照网络标准进行转化,然后在进行发送。

0 0