之所以能多存一位,是因為二進製中的數字不是0就是1,而第一位永遠都是1……第一位如果是0的話就不需要寫出來了,就像十進製裡的一個整數前麵不可能有零一樣。p
如果第一位永遠是1,那就不需要浪費一個空間把它存進存儲單元裡,於是就省下了一個存儲單元做到了存儲單元最大化利用。p
具體到運算時要做的,就是不要把這個沒有存進去的“1”漏掉……現代編程運算可以在程序中把“1”加上計算,而這時期的運算,就是在存儲單元之間多接幾根電線增加些進位規則。p
王學新接著又說道:“確切的說,不隻12位!”p
瓊一愣,然後馬上就明白了,她瞪大了眼睛連連點頭:“是的,不隻12位!應該是……”p
瓊稍加思索,就興奮的說:“極端情況下,應該是20位,對嗎?團長同誌!”p
王學新點了點頭,瓊不愧是瓊,一個日不落的數學家,她馬上就知道小數點可以移動的另一個好處,就是還可以增加運算精度。p
比如一個數據是000000001111111111111,定點運算是沒法存這個數字的,但浮點運算隻需要把它變成1111111111111,再將小數點移了多少位存在次方存儲單元,12個存儲單元就恰好可以把這個數存下並進行運算。p
這說白了其實就是二進製的科學計數法,隻不過要想辦法把數據準確的存進有限的空間裡所以才多出了七七八八空間還有位數之類的玩意。p
班、陳兩人聽著有些迷湖,但看到瓊一臉興奮的樣子,他們就知道王學新說的沒錯,隻是他們沒聽懂而已。p
不過在這方麵王學新並不擔心,因為班、陳兩人隻是一時沒習慣二進製的計算也沒習慣將其與計算機的存儲單元聯係在一起,所以才有些半懂不懂聽得不是很明白。p
“太棒了團長同誌!”瓊興奮的擁抱了王學新一下,說:“這方法使我們可以在不增加存儲單元的情況提高運算精度和運算範圍,太不可思議了,你是怎麼想到這方法的?”p
“這……”王學新有些尷尬的看了看班陳兩人一眼,回答:“這是……你知道的,我們在研發計算機的時候就碰到這個問題,為了儘可能的降低故障率,我們隻能想儘辦法減少零件!”p
王學新這個解釋合情合理。p
零件越多故障率越高,反過來零件越少故障率當然就越低。p
八路軍的工業水平不行零件故障率高,就要想儘辦法減少零件以降低故障率,於是就要在算法上動腦筋。p
不過當然,這一切都沒有發生,它們隻是王學新虛構出來的。p
王學新會知道這些,隻不過是占了點現代人的便宜罷了。p
有時候王學新在想,如果這些都能上,那是不是自己在大學時學的那什麼c語言也能用上?p
不過想想就知道不可能,這時候計算機才剛出來,用的都是低級語言甚至連低級語言都沒有,需要手動連線控製……p
像c語言這種東西那肯定是用不上的。p