第1268章 节省空间

也难怪琼不知道。

浮点运算这东西是在计算机发展一段时间后才针对有限存储空间提高其灵活性和运算范围发明出来的。

此时的琼还有远在日不落的图灵,他们虽然有足够的智商发明这种运算,但此时他们的注意力主要集中在“克里斯托弗”本身,而且主要针对其解码方面的用途,于是就没有考虑到这一点。

“这么说吧!”王学新带着几个人来到防空洞门边的办公桌前,拿过桌上的纸和笔一边写着一边解释道:“如果我们使用16位运算带小数的数据,按常规的运算方式应该是将一半的存储单元也就是7位配给整数,另8位分配给小数,对吗?”

“没错!”琼点了点头。

之所以整数位只有7位,是因为数据通常有正有负,要空出一位表示正负(0表示正,1表示负),这一位也被称作是符号位。

“这样的存储法很多时候会出现空间和时间的浪费!”王学新接着说道:“它的整数位固定只有7位小数位固定只有8位,如果有个数据是123456678,虽然它只有8位数而我们的存储单元有16个,但却存不下这个数字!”

这是因为整数位只有7位的原因,所以一个八位数已经超出它的储存范围了,尽管小数位的8个储存单元一个数字都没存。

同理,如果整数位一个数字都没有,小数位却在第九位上,也无法有效储存进行运算。

琼点头道:“这就是我想说的,我们应该要扩展到32个存储单元,之前用机械零件要做到这一点很困难,现在改用继电器做零件了,同样的条件完全能实现32位为什么不做?”

“等等,琼!”王学新说:“你先听我说完!”

琼点了下头然后就不说话了。

王学新接着说道:“这是传统的储存方式,我们姑且把它称作定点运算。浮点运算的意思是,我们把其中几位,比如四位用来存储次方……”

“存储次方?”琼吃惊的望向王学新:“但它们通常没有次方!”

陈班两人也疑惑不解,他们不明白这样转换会有什么用。

王学新举了个例子:“比如刚才的数据12345678,我们为什么不能把它变成1.23456678乘以10的7次方?然后我们的整数和小数的存储空间就可以随意利用,简单的说,就是小数没有用到的存储空间就可以用这方法变换到整数利用,整数没有用到的存储空间可以变换到小数去利用!”

琼听着不由恍然大悟。

“说得对,团长同志!”琼说:“这样一来,任何时候我们的存储空间都有11位,可以存下任何一个11位数而不是定点运算的7位整位或8位小数。”

“是的!”王学新点了点头,说:“实际上,如果把它转换为二进制并把所有的数字都转换成1.XXXX的形式并只存小数点后的数字的话,我们还可以多存一位也就是12位!”

这有点难理解。

之所以能多存一位,是因为二进制中的数字不是0就是1,而第一位永远都是1……第一位如果是0的话就不需要写出来了,就像十进制里的一个整数前面不可能有零一样。

如果第一位永远是1,那就不需要浪费一个空间把它存进存储单元里,于是就省下了一个存储单元做到了存储单元最大化利用。

具体到运算时要做的,就是不要把这个没有存进去的“1”漏掉……现代编程运算可以在程序中把“1”加上计算,而这时期的运算,就是在存储单元之间多接几根电线增加些进位规则。

王学新接着又说道:“确切的说,不只12位!”

琼一愣,然后马上就明白了,她瞪大了眼睛连连点头:“是的,不只12位!应该是……”

琼稍加思索,就兴奋的说:“极端情况下,应该是20位,对吗?团长同志!”

王学新点了点头,琼不愧是琼,一个日不落的数学家,她马上就知道小数点可以移动的另一个好处,就是还可以增加运算精度。

比如一个数据是0.00000001111111111111,定点运算是没法存这个数字的,但浮点运算只需要把它变成1.111111111111,再将小数点移了多少位存在次方存储单元,12个存储单元就恰好可以把这个数存下并进行运算。

这说白了其实就是二进制的科学计数法,只不过要想办法把数据准确的存进有限的空间里所以才多出了七七八八空间还有位数之类的玩意。

班、陈两人听着有些迷糊,但看到琼一脸兴奋的样子,他们就知道王学新说的没错,只是他们没听懂而已。

不过在这方面王学新并不担心,因为班、陈两人只是一时没习惯二进制的计算也没习惯将其与计算机的存储单元联系在一起,所以才有些半懂不懂听得不是很明白。

“太棒了团长同志!”琼兴奋的拥抱了王学新一下,说:“这方法使我们可以在不增加存储单元的情况提高运算精度和运算范围,太不可思议了,你是怎么想到这方法的?”

“这……”王学新有些尴尬的看了看班陈两人一眼,回答:“这是……你知道的,我们在研发计算机的时候就碰到这个问题,为了尽可能的降低故障率,我们只能想尽办法减少零件!”

王学新这个解释合情合理。

零件越多故障率越高,反过来零件越少故障率当然就越低。

八路军的工业水平不行零件故障率高,就要想尽办法减少零件以降低故障率,于是就要在算法上动脑筋。

不过当然,这一切都没有发生,它们只是王学新虚构出来的。

王学新会知道这些,只不过是占了点现代人的便宜罢了。

有时候王学新在想,如果这些都能上,那是不是自己在大学时学的那什么C语言也能用上?

不过想想就知道不可能,这时候计算机才刚出来,用的都是低级语言甚至连低级语言都没有,需要手动连线控制……

像C语言这种东西那肯定是用不上的。

第170章 会议第1388章 拦截方案第1148章 子弹第413章 投靠第1583章 层层包围第1480章 激光第300章 试射第16章 信念第571章 看枪先看弹第853章 数据第1113章 枪第980章 再显神通第536章 弱点第1112章 缺口第1595章 空中点火第866章 逆向工程第867章 诱饵第932章 借口第982章 改进型“高火”第644章 打报告第88章 地道战第19章 掘壕渐近第1739章 新京第1518章 炮侦雷达第1853章 包围第956章 闪电战第1698章 矛盾第443章 战术第1172章 演练第1711章 通化第188章 讨价还价第153章 仿制“鬼炮”第509章 思想胜利第39章 木壳雷第1630章 海战模式第87章 警戒点第654章 工业化第1764章 的确良第338章 侦察连第1813章 学生兵第969章 地盘第713章 轰炸第1138章 生存空间第275章 生死之间第478章 以攻代守第1641章 四平防御战第250章 交易第1570章 醉翁之意不在酒第1083章 夜袭第1012章 分歧第617章 照明弹第1031章 火车站第1395章 一分钱一分货第583章 精神面貌第1193章 相同的命令第1715章 夜战第257章 粉丝第1783章 步步进逼第784章 家第1883章 反舰飞弹第1621章 愤怒级军舰第239章 "分赃"第1887章 谜底第1614章 补给第1076章 生产线第1095章 利源村第1421章 白热化第1768章 分化第1395章 一分钱一分货第710章 华夏营长第1376章 开价第1293章 天下第一关第969章 地盘第150章 烟雾第718章 数量第840章 自杀式袭击第333章 挑畔第1067章 防线第708章 淘汰制第1714章 夜间战机第1610章 侦察兵第769章 空战第1079章 抗压能力第370章 误导第1656章 深谋远虑第1517章 运输第1305章 航空燃油第1077章 厂长第558章 学习能力第122章 鱼鳞式包围阵第591章 算帐第1550章 难题第640章 痞子对无赖第373章 紧急集合第372章 舍易取难第248章 杀的一手好价第1687章 百战旅第761章 波浪咬尾第516章 秩序