1、16进制表示法

2、数据大小

char(1字节)、short(2字节)、int(4字节)、long(32位:4字节,64位:8字节)、float(4字节)、double(8字节)、指针(32位:4字节,64位:8字节)

计算机系统2(一):信息的表示和处理

3、寻址和字节顺序

(1)以数据的第一个字节为地址

(2)大端法(Sun, PPC Mac, Internet):最高有效字节在前面(低地址)

小端法(x86):最低有效字节在前面(低地址)

(3)双端法:将处理器配置成小端或大端两种的机器运行。

(4)布尔代数运算、位级运算、逻辑运算

(5)移位运算:左移直接移,后面补0;右移分为逻辑右移(对无符号数用,在左端补k个0)、算术右移(对右符号数用,在左端补k个符号位的值)

例题:对32位的数据类型,求1<<2+3<<4?

答案:512。加号优先级大于左移,先2+3得到5,两种符号都是左结合,最终即1<<5<<4。

4、无符号数、补码编码

5、扩展一个数的位表示

无符号数(前面零扩展)、有符号数(前面符号位扩展)

6、截断数字

截掉前面k位数字,可能会导致符号改变。

7、无符号整数加法

如果溢出就丢掉溢出位。

8、有符号整数(补码)加法

和无符号加法有相同的位级的行为。但溢出会分为正溢出(两个正数相加溢出,结果变为负数)、负溢出(两个负数相加溢出,结果变为正数),如果溢出就丢掉溢出位。

9、无符号乘法

10、补码乘法

假设操作数有w位,先将两个操作数进行符号扩展到有2w位,然后像小学一样老老实实列出竖式来算,最后结果截断剩w位。(具体参考补码乘法

计算机系统2(一):信息的表示和处理

11、乘以常数

计算机系统2(一):信息的表示和处理

12、除以2的幂

x >> k 等价于 x/(2^k),无符号数使用逻辑右移,有符号数使用算术右移

13、二进制小数表示

如二进制数101.11 = 4 + 1 + 1/2 + 1/4

14、浮点数

(1)数值形式:计算机系统2(一):信息的表示和处理

  • 符号位S决定数字是负数还是正数
  • 尾数M的范围是 [1.0,2.0)
  • 阶码的作用是对浮点数加权

计算机系统2(一):信息的表示和处理
(2)编码:

单精度: 32 位

计算机系统2(一):信息的表示和处理

双精度: 64 位

计算机系统2(一):信息的表示和处理
几种不同的情况:

计算机系统2(一):信息的表示和处理
根据编码得到数值:

计算机系统2(一):信息的表示和处理
实例:

计算机系统2(一):信息的表示和处理

15、浮点数舍入

由于浮点数位数有限,存在一个表示范围和精度的问题。对于数值x,只能用浮点数可以表示的最接近数值x‘来近似表示。这就是舍入。

IEEE规定了四种舍入方式,分别为:向0舍入、向下舍入、向上舍入以及向偶数舍入。

向偶数舍入是默认的方式。

计算机系统2(一):信息的表示和处理

16、浮点加法和乘法

浮点加法:
计算机系统2(一):信息的表示和处理

例:
计算机系统2(一):信息的表示和处理
浮点乘法:

计算机系统2(一):信息的表示和处理

例:
计算机系统2(一):信息的表示和处理

17、整数和浮点数转换规则

(1)int转换为float,不会溢出,可能被舍入;

(2)int或float转换为double,能够准确表示;

(3)double转换为float,可能会溢出+∞或- ∞,也可能会舍入;

(4)float或double转换为int,可能会溢出,如果需要舍入则是向零舍入。

浮点数例题

考虑一种遵从IEEE规范的新浮点格式,包含3个阶码位和3个小数位(即该浮点数不考虑符号位,只用来表示正数)。

1)Bias值为多少?

2)除0和Infinity外,该浮点数能表示的数值范围为多少?

3)尝试填下以下表格的空白处。如果一个数值太大而无法表达,使用infinity的表达式;如果一个数值太小而无法表达,使用0的表达式。

计算机系统2(一):信息的表示和处理

答案:

1)Bias=2^2-1=3

2)
最大的数规格化表示:[110] [111]->E=6-3=3; M=1+0.111=1.111
V_max=1.111*2^(3)=1111 (15)

最小正数非规格化表示:[000] [001]->E=1-3=-2; M=0.001
V_min+=0.001*2^(-2)=0.00001==1/32

所以最终答案为 [1/32, 15]

3)
计算机系统2(一):信息的表示和处理

相关文章:

  • 2022-12-23
  • 2021-06-03
  • 2022-12-23
  • 2021-12-09
  • 2021-08-30
  • 2021-06-18
  • 2021-04-17
  • 2021-06-27
猜你喜欢
  • 2021-09-27
  • 2021-11-29
  • 2021-10-19
  • 2022-12-23
  • 2021-06-06
  • 2021-04-25
  • 2021-10-27
相关资源
相似解决方案