【学习笔记】信息的表示和处理

184 阅读3分钟

1.计算机存储信息采用的二进制格式,大多数计算机将8位bit或者称为字节(byte)做为最小存储单位,机器级程序将内存看作是一个非常大的字节数组,称为虚拟内存,每个字节都有一个唯一标识,称为地址,所有可能的地址集合就被称为虚拟地址空间

2.每台计算机都有一个字长,32位以及64位,字长决定了计算机访问内存地址空间大小,即最多访问2^w个字节。对于跨越多字节的程序对象,对象地址为所有用字节中最小的地址,比如一个int类型的对象起始地址是0x100,那么0x101、0x102、0x103这几个连续的地址也都用作于表示int。

3.在不同的机器,字节存储的顺序也不同,有两个通用的规则大端法小端法。例如一个int类型对象用16进制表示为0x01234567,大端法存储是按照从最高有效字到最低有效字节排序的,67 45 23 01 。而小端法则是按照我们所看到的那样,从最低有效字节到最高有效字节排序, 01 23 45 67 。目前大部分机器采用小端法。

4.计算机中表示整数的编码形式一个有两种。一种是无符号编号,另一种是补码编码,假设一个整数有w位编码,那么无符号编码所能代表的范围在UminU_{min}~UmaxU_{max},其中Umin=0U_{min}=0Umax=2w1U_{max}=2^{w}-1,其二进制转换公式为 B2Uw(x)=i=0w1xi2iB2U_w(x^\rightarrow)=\sum_{i=0}^{w-1}x_i2^i,而由于补码的最高有效位被解释为负权(也就是符号),所以它所能表示的范围在TminT_{min}~TmaxT_{max} 之间,其中Tmin=2wT_{min}=-2^wTmax=2w11T_{max}=2^{w-1}-1,二进制转换公式为:B2Tw(x)=xw12w1+i=0w2xi2iB2T_w(x^\rightarrow)=-x_{w-1}2^{w-1}+\sum_{i=0}^{w-2}x_i2^i。关于无符号转换成有符号,对于小于Tmax{T_{max}}的值保持不变,但对于大于Tmax{T_{max}}的值则要减去2w2^w转换成对于的复数。

5.IEEE浮点数标准用V=(1)s×M×2EV=(-1)^s\times M\times 2^E来表示。

  • 符号。用于表示当前浮点数正负数。
  • 尾数MM由一个二进制数表示,类似于我们科学计数法一样,是一个1.1.\cdots开头或者0.0.\cdots的二进制数。
  • 阶码。E的作用是对浮点数加权,这个权重是2的E次幂。同时阶码又分为一下三种类型
    • 规格化的值,指的是当 exp 的值不全为0也不全为1的时候。
    • 非规格化的值,指的是 exp 的值全为1。零可以用这个表示,只不过它有正负号
    • 特殊值,指的是 exp 的值全为0。可以表示一些特殊值,如NaN,正无穷,负无穷 单精度用1位表示符号,8位标识阶码,23位标识尾数。 例如一个浮点数128.5,在单精度里面,其M表示为 10000000100000000000000 ,exp=00000111,符号s=0,连起来就是 0 00000111 10000000100000000000000。