做而论道_CS:
其实,对浮点数的理解,不需要弄这么麻烦的。
上过初一的,都知道科学记数法:
N = ± 绝对值 × 10^e。
绝对值,当然是正数,由一位整数、多位小数组成。
e 则是以 10 为底的指数。
将此法,引入到计算机中,就是 “浮点数” 了:
N = (-1)^S × (1.) M × 2^E。
其中的 1.M,就是绝对值,它是一个无符号数。
阶码 E,则为:指数 e + 127。
把 “科学记数法” 中的 “绝对值、指数 e”,
拿来换算一下,“浮点数” 就出来了。
浮点数的运算:
相加减,要先对阶,再用绝对值的补码加减。
相乘除,就是绝对值相乘除、阶码相加减。
得出了加减乘除的结果后,还需要整理成规范的形式。
计算机中的浮点数运算,是由 “浮点机” 实现的。
(例如 80x86 系统的中的 “协处理器”。)
对阶、上下溢、运算、规格化等等,都是由硬件完成的。
这些步骤,不需要谁来编程。
不用编程,还学它干嘛?
难道,你们还想设计硬件?
硬件的原理及其设计,就由 “电子信息工程专业” 去干吧。
计算机专业的老师,就不要在这里哗众取宠了。
计算机专业的学生,学了这些,也是 P 用都没有的。
学了半年,也还是隔靴搔痒而已。
计算机专业,了解一点 “定点数、补码” 就行了。
当然,没上过中学又想装大瓣蒜的人,学学也无妨。