计算机组成原理 - 4

2020-02-11  本文已影响0人  Super曲江龙Kimi

二进制

计算机中是使用2进制来表示数据、指令的。


image.png

二进制中用第一位来表示正、负,0代表正数、1代表负数,其实也就是用一个正数的取反加1(补数)来表示与之对应的负数

二进制的减法运算

如果有减法运算的话,两个数相减则需要判断谁大谁小来决定符号位,所以计算机中是使用加法来代替减法的。


image.png

为什么0.1+0.2 不等于0.3

用二进制表示小数的方法如下:


image.png

出错的原因是因为有些十进制的数无法转换成二进制

image.png
如图中十进制的step并不是连续的,而是跳跃的,所以想要表示出0.1,那么二进制数就需要是无限循环0.00011001100...(无限循环),这和十进制无法表示1/3一样。所以0.1+0.2后得到的是一个无限循环的二进制,转换成十进制,经过四舍五入就不等于0.3。好在这种误差一般是可以接受的,如果要完全避免就需要尽量不使用小数计算,先扩大成整数,计算完成后再除回去。

浮点数

浮点数是指用符号、尾数、基数、指数表示的小数


image.png

数据压缩

数据传输时可以利用压缩来减少存储空间的占用。

  1. RLE算法
    例如文本:AAAAAABBCDDEEEEEF
    我们可以利用“字符*出现次数”来实现压缩。

    image.png
  2. 哈夫曼编码
    出现频率高的字符用尽量少的位数编码来表示
    例如文本:AAAAAABBCDDEEEEEF

    image.png

利用哈夫曼树来压缩


image.png
image.png image.png

字符集和编码

利用二进制可以表示出常用字符串。

  1. ASCII码
    使用七位可以表示出95个可打印字符和33个不可打印字符


    image.png

2 Extended ASCII码
因为一些常用的符号在之前的ASCII码中没有,所以需要扩展


image.png

3 GB2312
国标2312是一个中文编码集收录7445个字符

4 GBK
向下兼容GB2312,收录21003个汉字

5 unicode编码
又名万国码、统一码 其中根据字节有UTF-8 、UTF-16

上一篇 下一篇

猜你喜欢

热点阅读