美文网首页
第二章《信息的表示和处理》(一)

第二章《信息的表示和处理》(一)

作者: ShawnIsACoder | 来源:发表于2018-10-21 18:10 被阅读0次

虚拟内存是什么

虚拟内存是一个抽象的非常大的字节数组。主要包含两个重要的作用(参考这里)

  • 扩展内存大小限制:放了防止内存被程序耗尽,虚拟内存会通过各种机制来扩展实际内存的大小,例如使用磁盘空间

  • 简化寻址过程:参考文章中有个非常好的例子,见下方

    学校里有N个学生,每个同学都有自己的名字(物理地址),但是当他们被分配到各个班里座位上的时候,老师并不需要知道他们的名字就可以用座位的几排几列(虚拟地址)来指代学生*

十六进制有什么作用

二进制用于表示较大值的数字时,非常冗长。例如,表示一个字节,也就是8位信息时,二进制的值域为[00000000,11111111],映射为现实中常用的十进制,也就是[0,255]而已,我们需要用一种更为简单的方法来表示信息

那么为什么不考虑使用十进制呢?

因为,计算机中信息的最小载体是,位的本质也就是0或1(可以理解为‘是’或‘否’的含义)。用十进制来表示信息很难转换为计算机中用来表示信息的模式。

而比较方便的形式是八进制十六进制(8=23,16=24),它们都能以较短长度的值来描述一定的信息,并且能够很轻易的将信息转换为计算机中的位模式

在这两者之间,表示同样的信息,十六进制的值长度是肯定小于八进制的值长度的

注:十六进制的数字都是以0x开头作为标识的

字’大小的重要性

在第一章中,我们了解到了什么是’字‘(计算机总线总是传递定长的的字节块,这个字节块的容量被称为1字

常见的'字'有4字节和8字节的,也就是耳熟能详的32位64位

字长决定的最重要的系统参数就是虚拟空间的最大大小

为什么字长能够决定虚拟空间的大小?原因如下:

虚拟内存的每一个字节都由一个唯一的数字来标识,称为它的地址地址是用一个字来编码的

对于32位系统而言,地址的取值区间只有[0,(2^32)-1],那么我们就可以计算出虚拟地址空间的最大大小为2^32字节 = 4GB

注意:我们称呼程序为32位程序64位程序时,指的是程序编译时是32位的还是64位的,而不是由其运行时的机器类型决定的

寻址与字节顺序

对于跨越多字节的程序对象,我们必须确定两个存储规则:

  1. 这个对象的地址有是什么
  2. 在内存中如何排列这些字节

在几乎所有的机器上,跨越多字节的程序对象都是以连续的内存空间进行存储的

例如:一个int类型(32位)的变量x的地址值为0x100,那么x变量被存储在0x100、0x101、0x102和0x103这4个位置中

那么这么一个4字节的int类型变量每个字节的值是如何在内存中排列的呢?

通常来说有两种排列方法

  1. 把数据的地位值到高位值按照从左到右的方式依次排列,称为小端法
  2. 把数据的高位值到地位值按照从左到右的方式依次排列,称为大端法

例如:x变量的十六进制值为0x01234567,那么大端法和小端法的存储方式如下:

类型 0x100 0x101 0x102 0x103
大端法 01 23 45 67
小端法 67 45 23 01

大端法小端法只是两个方式,本质上没有优劣之分,且在大多数情况下,机器所使用的字节排列顺序都是不可见的。但需要了解,有些时候,字节顺序可能会导致一些问题。

相关文章

  • 第二章《信息的表示和处理》(一)

    虚拟内存是什么 虚拟内存是一个抽象的非常大的字节数组。主要包含两个重要的作用(参考这里) 扩展内存大小限制:放了防...

  • 信息的表示和处理

    比特及位级运算 现代计算机存储和处理信息以二进制信号表示,一个二进制数称为位。大多数的计算机使用8位,或者字节,作...

  • 信息的表示和处理

    主要研究三种数字表示1、无符号编码2、补码编码3、浮点数编码 一些基本概念 整数表示相对小的数值范围,但是一个精确...

  • 信息的表示和处理

    在阅读《深入理解计算机系统》的过程之中,有一些知识点是我觉得有必要记录下来的,在这里进行一定的总结。 文本数据比二...

  • 信息的表示和处理

    信息的存储 字数据大小 计算机中,字长指的是指针数据标称大小,虚拟地址以字来进行编码的,所以字长w位的机器,可以表...

  • 信息的表示和处理

    现代计算机存储和处理的信息以二值信号表示。这些微不足道的二进制数字,或者称为位 (bit), 形成了数字革命的基础...

  • 第二章:信息的表示和处理

    2.1信息的存储 大多数计算机以8位块或字节(byte)作为最小寻址单位,而不是访问内存中单独的位,机器级程序将内...

  • 第二章:信息的表示和处理

    无符号(unsigned)编码基于传统的二进制表示法,表示大于或者等于零的数字。 补码(two's-complem...

  • 第二章 信息的表示和处理

    本章我们来研究三种重要的数字表示 无符号是基于传统二进制表示法,表示大于或等于0的数字 补码是表示有符号整数的最常...

  • 第二章 信息的表示和处理

    对二值信号进行存储和执行计算的电子电路非常简单和可靠。 重要的三中数字表示: 无符号 -- 基于传统的二进制表示法...

网友评论

      本文标题:第二章《信息的表示和处理》(一)

      本文链接:https://www.haomeiwen.com/subject/toabzftx.html