16位元電腦的鼻祖

史記卷25 律書

「漢書」說,史記130篇中有十篇「有錄無書」,史記卷25、律書也是其中之一,因而,律書可能不完全是司馬遷原著,律書的律,指的不是法律的律,事實上是「兵書」,是一本軍事方面的文章,可惜,一般認為只有前面一段是原著。

不過,史記卷25、律書中的「律數」卻相當有趣,部份原文如下:

子一分。丑三分二。寅九分八。卯二十七分十六。辰八十一分六十四。巳二百四十三分一百二十八。午七百二十九分五百一十二。未二千一百八十七分一千二十四。 申六千五百六十一分四千九十六。酉一萬九千六百八十三分八千一百九十二。戌五萬九千四十九分三萬二千七百六十八。亥十七萬七千一百四十七分六萬五千五百三 十六。

這一段使用「子丑寅卯辰巳午未申酉戌亥」十二個天干名稱列出12個數字,這12個數字是1、2/3、8/9、16/27、64/81、128/243、512/729、1024/2187、4096/6561、8192/19683、32768/59049、65536/177147。這串數字對一般人可能沒什麼意義,其實這串數字是:

1 = (2的0次方) / (3的0次方)

2/3 = (2的1次方) / (3的1次方)

8/9 = (2的3次方) / (3的2次方)

16/27 = (2的4次方) / (3的3次方)

64/81 = (2的6次方) / (3的4次方)

128/243 = (2的7次方) / (3的5次方)

512/729 = (2的9次方) / (3的6次方)

1024/2187 = (2的10次方) / (3的7次方)

4096/6561 = (2的12次方) / (3的8次方)

8192/19683 = (2的13次方) / (3的9次方)

32768/59049 = (2的15次方) / (3的10次方)

65536/177147 = (2的16次方) / (3的11次方)

分子、分母各是2或3的幾次方,例如,8/9 是 (2的3次方) / (3的2次方),由此可知,中華文明在兩千多年前就已經有了「代數學」,更進一步,各位看到每個分子都是2的幾次方,從(2的0次方)一直到(2的16次方),(2的16次方)就是65536,大家今天能用iPhone、iPad或網路看到「史記爆料」都是因為有了電腦,而電腦的原理和「以2來計數」這方法的關係密不可分,中華文明在兩千多年前史記卷25、律書中的「律數」已能計算到(2的16次方)的65536,也就是16位元,可說是「16位元電腦的鼻祖」,至於說為何以2來計數是電腦基本原理,這是電子、電腦、電機、資訊科系大一課程「電腦概論」、「計算機概論」的內容,大概敘述如下:

我們平日計數都是10進位,十個1是10,十個10是100,…,依此類推,但是,電腦計數是「2進位」,「2進位」的兩個1是10,也就是說「2進位」的10代表的數字是2,所以11是2+1(11是10+1)、也就是3,以下是「2進位」的位元說明:

一位元能表示0、1兩個數字(所以可以從0數到1

兩位元能表示00、01、10、11肆個數字(所以可以從0數到3),三位元能表示000、001、010、011、100、101、110、111捌個數字(所以可以從0數到7)

…依此類推

16位元能表示

0000000000000000

0000000000000001

0000000000000010

0000000000000011

0000000000000100

0000000000000101

0000000000000111

1111111111111111

共65536個數字(所以可以從0數到65535),又看到65536這個數字了,這不是巧合,而是2進位計數的必然結果。

大多數人看到這裡肯定內心在罵「史記爆料」的作者-阿羯胡說八道,世界上從1數到10就行了,那有可能有什麼「2進位」?其實,我們天天都生活在「不是10進位的世界」,各位到傳統市場,菜販會告訴你:「這顆蘿蔔一斤七兩」,想一下,一斤是幾兩?沒錯,一斤是16兩,這就不是「10進位」,是「16進位」,所以是1兩、2兩、3兩、4兩、5兩、6兩、7兩、8兩、91兩、10兩、11兩、12兩、13兩、14兩、15兩、1斤(16兩),「這顆蘿蔔一斤七兩」表示這顆蘿蔔是16兩加7兩、共23兩,但是,如何用阿拉伯數字來表示一斤七兩?很簡單–17,哇!這就妙了,這不是「拾柒」嗎?的確,就是17,只是,這個1代表的是16而不是10,很玄吧!問題來了,「一斤」、「一斤一兩」…到「一斤九兩」可以分別用10、11、12、13、14、15、16、17、18、19來表示,那「一斤十兩」呢?「一斤十兩」用1A來表示,所以「16進位」的十以A表示、十一以B表示、十二以C表示、十三以D表示、十四以E表示、十五以F表示,所以,

「一斤十兩」用1A來表示

「一斤十一兩」用1B來表示

「一斤十二兩」用1C來表示

「一斤十三兩」用1D來表示

「一斤十四兩」用1E來表示

「一斤十五兩」用1F來表示

這麼一講,大家更糊塗了,內心在罵,「阿羯不但胡說八道,還胡亂發明」,這就誤會大了,若各位有工程用計算機或去下載iPhone、iPad計算機app,試著切換到16進位,一定會有ABCDEF這六個字母,這是工程需要用到的。此時,可以試著鍵入數字後切換「2進位」、「8進位」、「16進位」、「10進位」,看那些數字變化會很有趣。例如:

「10進位」的26,就是「16進位」的1A,就是「8進位」的32,就是「2進位」的11010。至於「16進位」的65536就是10000,65535呢?65535就是FFFF,「16進位」在早期電腦程式開發具很高的重要性,因為經常使用組合語言(assembly language),現在已進化至高階語言(例如:iPhone、iPad所使用Objective C語言),就不那麼常看見「16進位」數字了,但「2進位」、「8進位」、「16進位」仍是電腦基本原理的計數法

至此,非電腦專業的讀者一定更一頭霧水了,但是,請相信阿羯,以上所言的「2進位」、「8進位」、「16進位」均有所本,而且是電腦的基本原理。一般中文系的人讀史記,65536這數字一晃就過了,不會有火花,資訊系的呢?大概從未翻過史記,阿羯興趣多、好奇心強,東翻翻、西看看,才能由史記中爆出這個「16位元電腦的鼻祖」料來。

希望,至此大家都已認同「史記」是「16位元電腦的鼻祖」,也記住了「史記」中有65536(2的16次方)這個數字,也接受了「2進位」是電腦基本原理這事兒。剩下的事情只有一樣,讀者大人們一定會說:「那個笨蛋發明電腦的?幹嘛非得用2進位?」。

各位,試想我們隨手開燈、關燈,是不是只有開、關?開是1、關是0,這是電的特性、0/1就是「2進位」,既然電腦得用到電,因此只好用「2進位」了!

希望最後這個說明能讓讀者滿意,也就不會隨便罵:「那個笨蛋發明電腦的?」,而「那個笨蛋」可能正好是你我的祖先!

 

更多史記爆料,下回分解。

史記爆料目錄:三民新譯史記–目錄

16位元電腦的鼻祖(史記卷25、律書):2012年12月06日星期四