目录
前言
此文为csapp第二章节相关笔记
一、寻址和字节顺序
在内存中,对于需要多字节存储的对象,系统需要知道两个信息,改对象的起始地址和对象字节数。比如int类型变量,x的其实地址是0x100,那么其会被存储在0x100、0x101、0x102、0x103的位置上。
同时还会设计到一个问题就是大端法和小端法的问题,大端法指的是有些类型计算机是从高地址往低地址读取数据,小端法反之。这样呢,就会造成一些问题,在小端法机器上写的程序到大端法机器上可能会出问题,又或者是小端法的机器通过网络发送了一些数据到大端法的机器上,也会出现数据不一致的问题,所以这个问题有时需要注意一下。
二、数值表示
1.补码
大多数机器中,都是用补码来表示有符号数的,因为这样的方便进行运算。对于w位补码转换为十进制的公式为:.
2.浮点数表示
其中s用来表示正负、exp用来表示阶码、frac用来表示尾数。
最终浮点数的值V等于
其中,M = 1+ frac,这里的frac是尾数的值。E等于exp的值减去偏执数bias的值,bias在单精度为127,双精度为1023.
对于8位的浮点数来讲,具体计算及其数值如下表所示: