《编码》真是一本不错的书,从灯泡通信、继电器、二进制层层深入,再到加法器、汇编、处理器。全部连了起来,精妙啊,可惜现在才看到这本书,不过也为时不玩。
23章中讲到了定点数与浮点数,所以这里做下记录吧。
1.定点数
所谓的定点数,就是只小数点的位置总是在数的某个特定的位置,也就是有效位数是固定的。像书中所举的用压缩BCD(用四个位来表示0~9)保存数值就是只留两位小数,另外还有1位是符号位,用来标识数的正负。例如:
00010100 00110010 01010001 00100000 00100101 | 00000001 00010001 |
- 4 3 2 5 1 2 0. 2 5 | + 1. 1 1 |
上面两个二进制就分别表示-4325120.25和1.11。
2. 浮点数
计算机中的浮点格式是借助二进制数实现的科学计数法形式。
2.1 科学计数法
科学计数法将每个数表示成有效位与10的幂的乘积形式,这样子就可以避免写一长串的0,采用科学计数法,数490,000,000,000可以记为:,而数0.00000000026可以记为:。其中4.9和2.6被称作小数部分或者首数,而在计算机术语中这一部分被称为有效数(significand),11和-10则是指数(exponent)部分。
为了便于操作,一般规定有效数的取值范围是大于或等于1且小于10。这种写法有时被称为科学计数法的规范化式(normalized)。
2.2 浮点格式(floating-point notation)
浮点格式是对小数存储