第241章 仓颉第二版(2/2)

投票推荐 加入书签 留言反馈

【畅读更新加载慢,有广告,章节不完整,请退出畅读后阅读!】

   这种既要大范围、又要高精度的活,定点数根本扛不住。



    所谓定点,就是小数点的位置固定死,比如规定小数点后面留三位,那0.001就是最小单位,再小就没法表示了。



    而浮点,则是把一个数拆成尾数和指数两部分,比如3.14×10?,尾数管精度,指数管范围,两边都不耽误。



    仓颉这套编程语言,毕竟只是第一版,当初设计的时候,只做了定点数运算的宏。



    浮点运算虽然硬件能做,但语言层面没有对应的指令,程序员写程序的时候,还是得自己手搓。



    打个比方,硬件就像一个会算账的伙计,加减乘除都能干。可仓颉给这个伙计的“口令簿”里,只有整数的口令,没有小数的口令。



    你要让他算3.14加2.71,就得先把3.14拆成314乘以10的负二次方,把2.71拆成271乘以10的负二次方,对齐指数,再加尾数,最后再规格化回去。



    一套流程下来,光写代码就得十几行。



    上周算弹道的时候,周明就是这么干的,不但写起来费劲,还容易出错。



    现在要做的,就是在仓颉里加上浮点运算的宏,把对阶、尾数运算、规格化这些步骤,全部封装成一个宏。



    这样他们再写程序的时候,弹道程序的代码量能砍掉一半以上,出错的概率也会大大降低,只要写一句“浮点加 A B C”,编译器就会自动展开成那十几行的硬件指令。



    周明现在写的,就是最后一个浮点除法的展开规则。



    他的铅笔在纸上走走停停,时不时停下来,对着仓颉的指令表翻一翻。



    ??????



    机房的另一头,赵家骏正蹲在地上,对着一个刚焊好的小盒子傻乐。



    他这种傻乐的状态已经持续了一周了,可见特等功对他的鼓舞。



    那个盒子不大,大约只有巴掌宽,外壳是铁皮敲出来的,一头接着纸带盘,另一头连着机柜的输入接口。



    这就是改进其二的:光电读孔机。



    说起来它的原理并不复杂,纸带从一排光源和光电管中间穿过,有孔的地方,光透过去照在光电管上,就会输出一个电信号,而没孔的地方,光被挡住,就没有信号。



    原理简单,做起来却有讲究。



    最大的难点,是信噪比。



    纸带哪怕没孔的地方,也会漫反射一点光过去,如果放大电路的增益调得不好,就会把这种微弱的漏光当成信号,读出来的字符自然便不准了。



    还有纸带的速度也会有影响......



    赵家骏就在这上面卡了三天。



    最后还是林远给了一个三级放大加施密特整形的电路,才把问题解决的。



    赵家骏安装完毕后,伸手按下了启动键开始自测。



    纸带盘“哗啦”一声转动了起来,纸带从缝隙里匀速穿过。



    机柜那头,打印机“嗒嗒”地响了,输出的是一行测试字符:ABCDEFG。



    没有错码!



    赵家骏随后又跑了三卷纸带,每卷一百个字符,仔细核对完确认无误后,基本可以确定光电读孔机没啥问题。



    他这才站起身,拍了拍膝盖上的灰,冲机柜那头喊了一嗓子:“华教授,读孔这边搞定了!”



    ......



    

章节目录