EchoCow

念念不忘,必有回响

念念不忘,必有回响
  menu
99 文章
101 评论
111909 浏览
2 当前访客
ღゝ◡╹)ノ❤️

[阅读] CSAPP 读书笔记 —— 信息的表示和处理(二)

上一部分学习了无符号整数和有符号整数的表示,还有一些转化和处理,这一部分就是偏向他们之间的运算以及较为复杂的浮点数了。

2.3 整数运算

刚入门的时候,常会出现的情况就是当两个数过大,相加以后会得到一个负数的情况,或者是两个看起来一样的式子结果却不一样的情况。这些都是由于计算机运算的有限性造成的。

无符号加法、取反、乘法

对于无符号数,我们可以直接相加,然后查看下结果是否 溢出,如果溢出就减去位长能表示的最大值即可,其公式原理如下:

加法

+

无符号数求反中,如果不为 0,就用位长能表示的最大值减去当前值即可,原理公示如下:

取反

无符号乘法

补码加法、补码的非、补码乘法

补码的加法有三种情况

  • 正溢出:正常相加的时候,大于了位长 w-1 能够表示的最大值,此时结果需要减去 2w
  • 负溢出:正常相加的时候,小于了位长 w-1 能够表示的最大值,此时结果需要加上 2w
  • 正常::正常相加的时候,在0 到 位长 w-1 能够表示的最大值之间。

加法

补码加法

补码的非其实就是两种情况

  • 如果为补码的最小值 TMinw,取非就不变
  • 如果不为补码的最小值 TMinw,取非就正常取即可

补码的非

补码乘法

表格

2.4 浮点数

IEEE(电气和电子工程师协会)754仔细制订表示浮点数及其运算的标准

二进制小数

就是十进制小数转二进制小数

二进制

IEEE 浮点表示

IEEE 浮点标准使用 V=(-1)s × M × 2E 形式表示一个数。

  • 符号:s 决定正负,对于 0 的符号位解释作特殊处理。
  • 尾数:M 是一个二进制小数,他的范围是 1~2 — g,或者是 0 ~ 1 — g。
  • 阶码:E 的作用是对浮点数加权,是 2 的 E 次幂(可为负)。
  • 一个单独的符号位 x 直接编码符号 s。
  • k 位的阶码字段 exp=ek-1 …… e1e0 编码阶码 E。
  • n 为小数字段 $ frac = \int_{n-1}\ldots\int_1\int_0. $ 编码尾数 M,但是编码出来的也依赖于阶码字段的值是否等于 0。

ieee

根据 exp 的值,被编码的值可以分为三种不同的情况:

exp

念念不忘,必有回响。

如果觉得文章不错或者帮到了您,帮忙点点下面广告呗~谢谢啦~

评论