数据结构与算法(详细资料暂没查询到)
目的
数据结构:是将有特定关系的数据元素的集合
数据结构与算法是为了做程序设计而结合的
堆和栈(暂没很好的资料参考)
浮点数类型
浮点数与二进制之间的转换
sign(一位):0表示正,1表示负
Exponent(8bit):指数部分。底数位2
Mantissa(除去小数点前整数部分,共23bit):基数部分。表示具体数值
实际例子(转)[不太懂]
Step 1 改写整数部分
以数值5.2为例。先不考虑指数部分,我们先单纯的将十进制数改写成二进制。
整数部分很简单,5.即101.。
Step 2 改写小数部分
小数部分我们相当于拆成是2-1一直到2-N的和。例如:
0.2 = 0.125+0.0625+0.007825+0.00390625即2-3+2-4+2-7+2-8….,也即.00110011001100110011
Step3 规格化
让小数点前只有一位
Step4填充
Exponent:之前说过需要以127作为偏移量调整。因此2的2次方,指数部分偏移成2+127即129,表示成10000001填入。
Mantissa:整数部分的1在填充时被舍去。因为规格后的整数部分总是1
。
ps:在相关程序的上下文中加上fesetenv,可以迫使CPU放弃使用非规范化浮点计算,提高性能。