二進(jìn)制
20世紀被稱(chēng)作
第三次科技革命的重要標志之一的計算機的發(fā)明與應用,其運算模式正是二進(jìn)制,同時(shí)證明了萊布尼茲的原理是正確的。
進(jìn)制數
二進(jìn)制數據的表示法
二進(jìn)制數據也是采用位置
計數法,其
位權是以2為底的
冪。例如二進(jìn)制數據110.11,逢2進(jìn)1,其權的大小順序為2^2、2^1、2^0、2^
-1、2^-2。對于有n位整數,m位小數的二進(jìn)制數據用加權系數展開(kāi)式表示,可寫(xiě)為:
?。?b>a(n-1)a(n-2)…a(-m))2=a(n-1)×2^(n-1)+a(n-2)×2^(n-2)+……+a(1)×2^1+a(0)×2^(0)+a(-1)×2^(-1)+a(-2)×2^(-2)+……+a(-m)×2^(-m)
二進(jìn)制數據一般可寫(xiě)為:(a(n-1)a(n-2)…a(1)a(0).a(-1)a(-2)…a(-m))2。
注意:
1.式中aj表示第j位的系數,它為0和1中的某一個(gè)數。
2.a(n-1)中的(n-1)為
下標,輸入法無(wú)法打出所以用括號括住,避免混淆。
3.2^2表示2的平方,以此類(lèi)推。
【例1102】將二進(jìn)制數據111.01寫(xiě)成加權系數的形式。
解:(111.01)2=(1×2^2)+(1×2^1)+(1×2^0)+(0×2^-1)+(1×2^-2)
二進(jìn)制和
十六進(jìn)制,八進(jìn)制一樣,都以二的冪來(lái)進(jìn)位的。
二進(jìn)制運算
二進(jìn)制數據的
算術(shù)運算的基本規律和
十進(jìn)制數的運算十分相似。最常用的是加法運算和
乘法運算。
1. 二進(jìn)制加法
有四種情況: 0+0=0
0+1=1
1+0=1
1+1=10
ps:0 進(jìn)位為1
【例1103】求 (1101)2+(1011)2 的和
解:
1 1 0 1
+1 0 1 1
-------------------
1 1 0 0 0
2. 二進(jìn)制乘法
有四種情況: 0×0=0
1×0=0
0×1=0
1×1=1
【例1104】求 (1110)2 乘(101)2 之積
解:
1 1 1 0
× 1 0 1
-----------------------
1 1 1 0
0 0 0 0
1 1 1 0
-------------------------
1 0 0 0 1 1 0
(這些計算就跟十進(jìn)制的加或者乘法相同,只是進(jìn)位的數不一樣而已,十進(jìn)制的是到十才進(jìn)位這里是到2就進(jìn)了)
3.二進(jìn)制減法
0-0=0,1-0=1,1-1=0,10-1=1。
4.二進(jìn)制除法
0÷1=0,1÷1=1。[1-2]
5.二進(jìn)制拈加法
拈加法二進(jìn)制加減乘除外的一種特殊算法。
拈加法運算與進(jìn)行加法類(lèi)似,但不需要做進(jìn)位。此算法在
博弈論(Game Theory)中被廣泛利用
計算機中的十進(jìn)制小數轉換二進(jìn)制
計算機中的十進(jìn)制小數用二進(jìn)制通常是用乘二取整法來(lái)獲得的。
比如0.65換算成二進(jìn)制就是:
0.65 * 2 = 1.3 取1,留下0.3繼續乘二取整
0.3 * 2 = 0.6 取0, 留下0.6繼續乘二取整
0.6 * 2 = 1.2 取1,留下0.2繼續乘二取整
0.2 * 2 = 0.4 取0, 留下0.4繼續乘二取整
0.4 * 2 = 0.8 取0, 留下0.8繼續乘二取整
0.8 * 2 = 1.6 取1, 留下0.6繼續乘二取整
0.6 * 2 = 1.2 取1,留下0.2繼續乘二取整
.......
一直循環(huán),直到達到精度限制才停止(所以,計算機保存的小數一般會(huì )有誤差,所以在編程中,要想比較兩個(gè)小數是否相等,只能比較某個(gè)精度范圍內是否相等。)。這時(shí),十進(jìn)制的0.65,用二進(jìn)制就可以表示為:1010011。
還值得一提的是,在目前的計算機中,除了十進(jìn)制是有符號的外,其他如二進(jìn)制、八進(jìn)制、16進(jìn)制都是無(wú)符號的。
在現實(shí)生活和記數器中,如果表示數的“器件”只有兩種狀態(tài),如電燈的“亮”與“滅”,開(kāi)關(guān)的“開(kāi)”與“關(guān)”。一種狀態(tài)表示數碼0,另一種狀態(tài)表示數碼1,1加1應該等于2,因為沒(méi)有數碼2,只能向上一個(gè)數位進(jìn)一,就是采用“滿(mǎn)二進(jìn)一”的原則,這和十進(jìn)制是采用“滿(mǎn)十進(jìn)一”原則完全相同。
1+1=10,10+1=11,11+1=100,100+1=101,
101+1=110,110+1=111,111+1+=1000,……,
可見(jiàn)二進(jìn)制的10表示二,100表示四,1000表示八,10000表示十六,……。
二進(jìn)制同樣是“位值制”。同一個(gè)數碼1,在不同數位上表示的數值是不同的。如11111,從右往左數,第一位的1就是一,第二位的1表示二,第三位的1表示四,第四位的1表示八,第五位的1表示十六。
所謂二進(jìn)制,也就是計算機運算時(shí)用的一種算法。二進(jìn)制只由一和零組成。
比方說(shuō)吧,你上一年級時(shí)一定聽(tīng)說(shuō)過(guò)“進(jìn)位筒”&“數位筒”吧!十進(jìn)制是個(gè)位上滿(mǎn)十根小棒就捆成一捆,放進(jìn)十位筒,十位筒滿(mǎn)十捆就捆成一大捆,放進(jìn)百位筒……
二進(jìn)制也是一樣的道理,個(gè)位筒上滿(mǎn)2根就向十位進(jìn)一,十位上滿(mǎn)兩根就向百位進(jìn)一,百位上滿(mǎn)兩根…… 二進(jìn)制是世界上第一臺計算機上用的算法,最古老的計算機里有一個(gè)個(gè)燈泡,當運算的時(shí)候,比如要表達“一”,第一個(gè)燈泡會(huì )亮起來(lái)。要表達“二”,則第一個(gè)燈泡熄滅,第二個(gè)燈泡就會(huì )亮起來(lái)。
二進(jìn)制就是等于2時(shí)就要進(jìn)位。
0=00000000
1=00000001
2=00000010
3=00000011
4=00000100
5=00000101
6=00000110
7=00000111
8=00001000
9=00001001
10=00001010
……
即是逢二進(jìn)一,二進(jìn)制廣泛用于最基礎的運算方式,計算機的運行計算基礎就是基于二進(jìn)制來(lái)運行。只是用二進(jìn)制執行運算,用其他進(jìn)制表現出來(lái)。
其實(shí)把二進(jìn)制三位一組分開(kāi)就是八進(jìn)制, 四位一組就是十六進(jìn)制
進(jìn)制轉換
二進(jìn)制數、八進(jìn)制數、十六進(jìn)制數轉換為十進(jìn)制數的方法:按權展開(kāi)求和法
1.二進(jìn)制與十進(jìn)制間的相互轉換:
?。?)二進(jìn)制轉十進(jìn)制
方法:“按權展開(kāi)求和”
例: (1011.01)2 =(1×2^3+0×2^2+1×2^1+1×2^0+0×2^(-1)+1×2^(-2) )10
=(8+0+2+1+0+0.25)10
=(11.25)10
規律:個(gè)位上的數字的次數是0,十位上的數字的次數是1,......,依次遞增,而十
分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。
注意:不是任何一個(gè)十進(jìn)制小數都能轉換成有限位的二進(jìn)制數。
· 十進(jìn)制整數轉二進(jìn)制數:“除以2取余,逆序排列”(除二取
余法)
例: (89)10 =(1011001)2
89÷2 ……1
44÷2 ……0
22÷2 ……0
11÷2 ……1
5÷2 ……1
2÷2 ……0
1
· 十進(jìn)制小數轉二進(jìn)制數:“乘以2取整,順序排列”(乘2取整法)
例: (0.625)10= (0.101)2
0.625X2=1.25 ……1
0.25 X2=0.50 ……0
0.50 X2=1.00 ……1
十進(jìn)制1至100的二進(jìn)制表示:
0=0
1=1
2=10
3=11
4=100
5=101
6=110
7=111
8=1000
9=1001
10=1010
11=1011
12=1100
13=1101
14=1110
15=1111
16=10000
17=10001
18=10010
19=10011
20=10100
21=10101
22=10110
23=10111
24=11000
25=11001
26=11010
27=11011
28=11100
29=11101
30=11110
31=11111
32=100000
33=100001
34=100010
35=100011
36=100100
37=100101
38=100110
39=100111
40=101000
41=101001
42=101010
43=101011
44=101100
45=101101
46=101110
47=101111
48=110000
49=110001
50=110010
51=110011
52=110100
53=110101
54=110110
55=110111
56=111000
57=111001
58=111010
59=111011
60=111100
61=111101
62=111110
63=111111
64=1000000
65=1000001
66=1000010
67=1000011
68=1000100
69=1000101
70=1000110
71=1000111
72=1001000
73=1001001
74=1001010
75=1001011
76=1001100
77=1001101
78=1001110
79=1001111
80=1010000
81=1010001
82=1010010
83=1010011
84=1010100
85=1010101
86=1010110
87=1010111
88=1011000
89=1011001
90=1011010
91=1011011
92=1011100
93=1011101
94=1011110
95=1011111
96=1100000
97=1100001
98=1100010
99=1100011
100=1100100
2.八進(jìn)制與二進(jìn)制的轉換:
二進(jìn)制數轉換成八進(jìn)制數:從小數點(diǎn)開(kāi)始,
整數部分向左、小數部分向右,每3位為一組用一位八進(jìn)制數的數字表示,不足3位的要用“0”補足3位,就得到一個(gè)八進(jìn)制數。
八進(jìn)制數轉換成二進(jìn)制數:把每一個(gè)八進(jìn)制數轉換成3位的二進(jìn)制數,就得到一個(gè)二進(jìn)制數。
八進(jìn)制數字與
二進(jìn)制數字對應關(guān)系如下:
000 -> 0 100 -> 4
001 -> 1 101 -> 5
010 -> 2 110 -> 6
011 -> 3 111 -> 7
例:將
八進(jìn)制的37.416轉換成二進(jìn)制數:
3 7 . 4 1 6
011 111 .100 001 110
即:(37.416)8 =(11111.10000111)2
例:將
二進(jìn)制的10110.0011 轉換成八進(jìn)制:
0 1 0 1 1 0 . 0 0 1 1 0 0
2 6 . 1 4
即:(10110.011)2 = (26.14)8
3.十六進(jìn)制與二進(jìn)制的轉換:
二進(jìn)制數轉換成十六進(jìn)制數:從小數點(diǎn)開(kāi)始,整數部分向左、小數部分向右,每4位為一組用一位十六進(jìn)制數的數字表示,不足4位的要用“0”補足4位,就得到一個(gè)十六進(jìn)制數。
十六進(jìn)制數轉換成二進(jìn)制數:把每一個(gè)十六進(jìn)制數轉換成4位的二進(jìn)制數,就得到一個(gè)二進(jìn)制數。
十六進(jìn)制數字與二進(jìn)制數字的對應關(guān)系如下:
0000 -> 0 0100 -> 4 1000 -> 8 1100 -> C
0001 -> 1 0101 -> 5 1001 -> 9 1101 -> D
0010 -> 2 0110 -> 6 1010 -> A 1110 -> E
0011 -> 3 0111 -> 7 1011 -> B 1111 -> F
例:將十六進(jìn)制數5DF.9 轉換成二進(jìn)制:
5 D F . 9
0101 1101 1111 .1001
即:(5DF.9)16 =(10111011111.1001)2
例:將二進(jìn)制數1100001.111 轉換成十六進(jìn)制:
0110 0001 . 1110
6 1 . E
即:(1100001.111)2 =(61.E)16
二進(jìn)制的特點(diǎn)
優(yōu)點(diǎn)
數字裝置簡(jiǎn)單可靠,所用元件少;
只有兩個(gè)
數碼0和1,因此它的每一位數都可用任何具有兩個(gè)不同穩定狀態(tài)的元件來(lái)表示;
基本運算規則簡(jiǎn)單,運算操作方便。
缺點(diǎn)
用二進(jìn)制表示一個(gè)數時(shí),位數多。因此實(shí)際使用中多采用送入數字系統前用十進(jìn)制,送入機器后再轉換成二進(jìn)制數,讓數字系統進(jìn)行運算,運算結束后再將
二進(jìn)制轉換為十進(jìn)制供人們閱讀。
二進(jìn)制和十六進(jìn)制的互相轉換比較重要。不過(guò)這二者的轉換卻不用計算,每個(gè)C,
C++程序員都能做到看見(jiàn)二進(jìn)制數,直接就能轉換為十六進(jìn)制數,反之亦然。
我們也一樣,只要學(xué)完這一小節,就能做到。
首先我們來(lái)看一個(gè)二進(jìn)制數:1111,它是多少呢?
你可能還要這樣計算:1 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。
然而,由于1111才4位,所以我們必須直接記住它每一位的權值,并且是從高位往低位記,:8、4、2、1。即,最高位的權值為2^3 = 8,然后依次是 2^2 = 4,2^1=2, 2^0 = 1。
記住8421,對于任意一個(gè)4位的二進(jìn)制數,我們都可以很快算出它對應的10進(jìn)制值。
下面列出四位二進(jìn)制數 xxxx 所有可能的值(中間略過(guò)部分)
僅4位的
2進(jìn)制數快速計算方法 十進(jìn)制值 十六進(jìn)值
1111 = 8 + 4 + 2 + 1 = 15 F
1110 = 8 + 4 + 2 + 0 = 14 E
1101 = 8 + 4 + 0 + 1 = 13 D
1100 = 8 + 4 + 0 + 0 = 12 C
1011 = 8 + 0 + 2+ 1 = 11 B
1010 = 8 + 0 + 2 + 0 = 10 A
1001 = 8 + 0 + 0 + 1 = 9 9
....
0001 = 0 + 0 + 0 + 1 = 1
0000 = 0 + 0 + 0 + 0 = 0 0
二進(jìn)制數要轉換為十六進(jìn)制,就是以4位一段,分別轉換為十六進(jìn)制。
如(上行為二制數,下面為對應的十六進(jìn)制):
1111 1101 , 1010 0101 , 1001 1011
F D , A 5 , 9 B
反過(guò)來(lái),當我們看到 FD時(shí),如何迅速將它轉換為二進(jìn)制數呢?
先轉換F:
看到F,我們需知道它是15(可能你還不熟悉A~F這五個(gè)數),然后15如何用8421湊呢?應該是8 + 4 + 2 + 1,所以四位全為1 :1111。
接著(zhù)轉換 D:
看到D,知道它是13,13如何用8421湊呢?應該是:8 + 4 + 1,即:1101。
所以,FD轉換為二進(jìn)制數,為: 1111 1101
由于
十六進(jìn)制轉換成二進(jìn)制相當直接,所以,我們需要將一個(gè)十進(jìn)制數轉換成2進(jìn)制數時(shí),也可以先轉換成
16進(jìn)制,然后再轉換成2進(jìn)制。
比如,十進(jìn)制數 1234轉換成二制數,如果要一直除以2,直接得到2進(jìn)制數,需要計算較多次數。所以我們可以先除以16,得到16進(jìn)制數:
被除數 計算過(guò)程 商 余數
1234 1234/16 77 2
77 77/16 4 13 (D)
4 4/16 0 4
結果16進(jìn)制為: 0x4D2
然后我們可直接寫(xiě)出0x4D2的二進(jìn)制形式: 0100 1101 0010。
其中對映關(guān)系為:
0100 -- 4
1101 -- D
0010 -- 2
同樣,如果一個(gè)二進(jìn)制數很長(cháng),我們需要將它轉換成10進(jìn)制數時(shí),除了前面學(xué)過(guò)的方法是,我們還可以先將這個(gè)二進(jìn)制轉換成16進(jìn)制,然后再轉換為10進(jìn)制。
下面舉例一個(gè)int類(lèi)型的二進(jìn)制數:
01101101 11100101 10101111 00011011
我們按四位一組轉換為16進(jìn)制: 6D E5 AF 1B
萊布尼茨與二進(jìn)制
簡(jiǎn)述
在德國圖靈根著(zhù)名的
郭塔王宮圖書(shū)館(Schlossbiliothke zu Gotha)保存著(zhù)
一份彌足珍貴的手稿,其標題為:“1與0,一切數字的神奇淵源。這是造物的秘密美妙的典范,因為,一切無(wú)非都來(lái)自上帝?!边@是德國天才大師
萊布尼茨(Gottfried Wilhelm Leibniz,1646 - 1716)的手跡。但是,關(guān)于這個(gè)神奇美妙的
數字系統,萊布尼茨只有幾頁(yè)異常精煉的描述。
萊布尼茨不僅發(fā)明了二進(jìn)制,而且賦予了它宗教的內涵。他在寫(xiě)給當時(shí)在中國傳教的法國耶穌士會(huì )牧師布維(Joachim Bouvet,1662 - 1732)的信中說(shuō):“第一天的伊始是1,也就是上帝。第二天的伊始是2,……到了第七天,一切都有了。所以,這最后的一天也是最完美的。因為,此時(shí)世間的一切都已經(jīng)被創(chuàng )造出來(lái)了。因此它被寫(xiě)作'7’,也就是'111’(二進(jìn)制中的111等于十進(jìn)制的7),而且不包含0。只有當我們僅僅用0和1來(lái)表達這個(gè)數字時(shí),才能理解,為什么第七天才最完美,為什么7是神圣的數字。特別值得注意的是它(第七天)的特征(寫(xiě)作二進(jìn)制的111)與三位一體的關(guān)聯(lián)?!?
布維是一位漢學(xué)大師,他對中國的介紹是17、18世紀歐洲學(xué)界中國熱最重要的原因之一。布維是萊布尼茨的好朋友,一直與他保持著(zhù)頻繁的書(shū)信往來(lái)。萊布尼茨曾將很多布維的文章翻譯成德文,發(fā)表刊行。恰恰是布維向萊布尼茨介紹了《
周易》和
八卦的系統,并說(shuō)明了《周易》在中國文化中的權威地位。
八卦是由八個(gè)符號組構成的占卜系統,而這些符號分為連續的與間斷的橫線(xiàn)兩種。這兩個(gè)后來(lái)被稱(chēng)為“陰”、“陽(yáng)”的符號,在萊布尼茨眼中,就是他的二進(jìn)制的中國翻版。他感到這個(gè)來(lái)自古老中國文化的符號系統與他的二進(jìn)制之間的關(guān)系實(shí)在太明顯了,因此斷言:二進(jìn)制乃是具有世界普遍性的、最完美的邏輯語(yǔ)言。
另一個(gè)可能引起萊布尼茨對八卦的興趣的人是坦澤爾(Wilhelm Ernst Tentzel),他當時(shí)是圖靈根大公爵硬幣珍藏室的領(lǐng)導,也是萊布尼茨的好友之一。在他主管的這個(gè)硬幣珍藏中有一枚印有八卦符號的硬幣。
與中國易經(jīng)的聯(lián)系
1679年3月15日戈特弗里德·威廉·萊布尼茨發(fā)明了一種計算法,用兩位數代替原來(lái)的十位數,即1 和 0。 1701年他寫(xiě)信給在北京的神父 Grimaldi(中文名字閔明我)和 Bouvet(中文名字白晉)告知自己的新發(fā)明,希望能引起他心目中的“算術(shù)愛(ài)好者”康熙皇帝的興趣。
白晉很驚訝,因為他發(fā)現這種“二進(jìn)制的算術(shù)”與中國古代的一種建立在兩個(gè)符號基礎上的符號系統是非常近似的,這兩個(gè)符號分別由一條直線(xiàn)和兩條短線(xiàn)組成,即── 和 — —。這是中國最著(zhù)名大概也是最古老的書(shū)《易經(jīng)》的基本組成部分,據今人推測,該書(shū)大約產(chǎn)生于公元前第一個(gè)千年的初期,開(kāi)始主要是一部占卜用書(shū),里邊的兩個(gè)符號可能分別代表“是”和“不”。
萊布尼茨對這個(gè)相似也很吃驚,和他的筆友白晉一樣,他也深信《易經(jīng)》在數學(xué)上的意義。他相信古代的中國人已經(jīng)掌握了二進(jìn)制并在科學(xué)方面遠遠超過(guò)當代的中國人。
《易經(jīng)》不是數學(xué)書(shū),而是一本“預言”,并在漫長(cháng)的歷史中逐漸演變?yōu)橐槐尽爸腔壑畷?shū)”。書(shū)里的短線(xiàn)意味著(zhù)陰陽(yáng)相對,也即天與地、光明與黑暗、造物主和大自然。六爻以不同的組合出現,人們可以借此對自然界和人類(lèi)生活的變換做出各種不同的解釋。比利時(shí)神父 P.Couplet(中文名字
柏應理)的 Confucius.Sinarum Philosophus (《孔子,中國人的思想家,…》)第一次在歐洲發(fā)表了易經(jīng)的六十四幅六爻八卦圖。
萊布尼茨的二進(jìn)制數學(xué)指向的不是古代中國,而是未來(lái)。萊布尼茨在1679年3月15日記錄下他的二進(jìn)制體系的同時(shí),還設計了一臺可以完成數碼計算的機器。我們今天的現代科技將此設想變?yōu)楝F實(shí),這在萊布尼茨的時(shí)代是超乎人的想象能力的。
計算機內部采用二進(jìn)制的原因
?。?)技術(shù)實(shí)現簡(jiǎn)單,計算機是由邏輯電路組成,邏輯電路通常只有兩個(gè)狀態(tài),開(kāi)關(guān)的接通與斷開(kāi),這兩種狀態(tài)正好可以用“1”和“0”表示。
?。?)簡(jiǎn)化運算規則:兩個(gè)二進(jìn)制數和、積運算組合各有三種,運算規則簡(jiǎn)單,有利于簡(jiǎn)化計算機內部結構,提高運算速度。
?。?)適合邏輯運算:邏輯代數是邏輯運算的理論依據,二進(jìn)制只有兩個(gè)數碼,正好與邏輯代數中的“真”和“假”相吻合。
?。?)易于進(jìn)行轉換,二進(jìn)制與十進(jìn)制數易于互相轉換。
?。?)用二進(jìn)制表示數據具有抗干擾能力強,可靠性高等優(yōu)點(diǎn)。因為每位數據只有高低兩個(gè)狀態(tài),當受到一定程度的干擾時(shí),仍能可靠地分辨出它是高還是低。
二進(jìn)制與周易
改革開(kāi)放前,大多數中國人不知道計算機是什么東西。1980年,美國人第一臺8086CPU芯片個(gè)人計算機(PC,俗稱(chēng)電腦)上市,80年代初,中國出現了進(jìn)口電腦。一臺蘋(píng)果機,價(jià)格近兩萬(wàn)元,是普通干部工人工資的數百倍,個(gè)人根本沒(méi)有能力購買(mǎi)。90年代以后中國有了互聯(lián)網(wǎng),電腦才逐步為中國人所熟悉。
面對外來(lái)的先進(jìn)科學(xué)技術(shù),中國有些傳統文化人很不服氣,連基本數學(xué)常識都沒(méi)有,卻說(shuō)什么計算機二進(jìn)制原理,源于中國的《周易》。
飛機與鳥(niǎo)兒都能在高空中飛翔,飛機的原理卻不是來(lái)自鳥(niǎo)類(lèi)。同樣,萊布尼茲見(jiàn)過(guò)中國的太極圖,不能完成證明計算機二進(jìn)制原理源于《易經(jīng)》。 但是,易經(jīng)因為是客觀(guān)規律的頂層設計,是潛在的客觀(guān)存在,沒(méi)有萊布尼茨,也會(huì )有別人發(fā)現的。
據說(shuō)伏羲創(chuàng )八卦。傳說(shuō)中的伏羲時(shí)代已有5000多年歷史了。5000多年前的人類(lèi)已經(jīng)有了計數能力,可是還沒(méi)有“0”這個(gè)數字概念,直到公元628年,印度人Brahmagupta首次使用O。12世紀印度人Bhaskara指出正數的平方根有兩個(gè),一正一負。(《數學(xué):確定性的喪失 英.M.克來(lái)因》湖南科技出版社)。
0不僅僅表示“無(wú)”或“沒(méi)有”,如氣溫0度,不是沒(méi)有溫度。有了0,就可建立一個(gè)參照系,如在一條直線(xiàn)上任取一點(diǎn)為0,0點(diǎn)的左邊為負數,右邊為正數。
學(xué)過(guò)計算機原理的人都知道,計算機電路的高電平和低電平對應二進(jìn)制數1與0。若高電平為1,則低電平為0;反之,高電平為0,低電平為1。這是正邏輯與反邏輯問(wèn)題。計算機的工作原理基于“布爾代數”,進(jìn)行邏輯運算。計算機電路盡管十分復雜,但基本單元卻很簡(jiǎn)單,由或門(mén)、與門(mén)、非門(mén)、與非門(mén)、或非門(mén)、異或門(mén)、同或門(mén)等組成。
毛教授代表了相當一部分中國傳統文化人的觀(guān)點(diǎn)。這是對數學(xué)進(jìn)制的無(wú)知,數學(xué)的進(jìn)制原理,不存在“正確”與“錯誤”,更沒(méi)有“先進(jìn)”與“落后”之分。
用什么制式進(jìn)行數學(xué)運算,要看什么場(chǎng)合,什么方便用什么。數學(xué)上有二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制、六十進(jìn)制,…等多種進(jìn)制,原則上可取任何數進(jìn)制,只要它實(shí)用。12個(gè)月一年是十二進(jìn)制,365天一年是三百六十五進(jìn)制。不同進(jìn)制的數可以相互轉換,如十進(jìn)制135,轉換成二進(jìn)制為10000111,二進(jìn)制的101轉換成十進(jìn)制為5。很顯然,若人工進(jìn)行十進(jìn)制計算135除5,十分簡(jiǎn)捷,但換成二進(jìn)制100001111除101,計算起來(lái)既費力又費時(shí)間,是最笨拙的進(jìn)制。
易經(jīng)八卦陽(yáng)爻為一長(cháng)劃“一”,陰爻為一斷劃“--”(馬王堆西漢考古證明,陰爻為“<”。后來(lái)演變成“--”),陰陽(yáng)二爻任取三爻成一卦,共八個(gè)卦,八卦?xún)蓛莎B加,成六十四卦。
有人認為,把八卦的陽(yáng)爻“一”視作1,陰爻“--”視作0,就是二進(jìn)制。
乾坤二卦象征天地。乾卦由三個(gè)陽(yáng)爻“一”上下疊加組成,坤卦由三個(gè)陰爻“--”上下疊加組成。若把陽(yáng)爻符號“一”看成1,陰爻符號“--”視作0,則乾卦三個(gè)爻為二進(jìn)制111,對應十進(jìn)制7;坤卦三個(gè)爻為二進(jìn)制000,對應十進(jìn)制0。
《系辭》曰:“易有太極,是生兩儀,兩儀生四象,四象生八卦”,太極即無(wú),無(wú)中生有,產(chǎn)生8個(gè)卦。若0等于無(wú),太極即0,這豈不與上面說(shuō)的坤為0相矛盾?并且,乾一、兌二、離三、震四、巽五、坎六、艮七、坤八,八個(gè)卦的“數”,都不能與各自六個(gè)爻符轉換成的“二進(jìn)制數”一一對應。
兩個(gè)八卦疊加成六十四卦,六十四卦各由六個(gè)爻組成。如乾卦為六個(gè)“一”,對應二進(jìn)制111111,轉換成十進(jìn)制,25+24+23+22+21+20=63;坤卦六個(gè)陰爻“--”,對應二進(jìn)制000000,轉換成十進(jìn)制仍為0。
古代漢字有“零”,零并不等于0,零的含意是:1,部分的、細碎的,與整相對,如零碎、十元零八毛;2,落,如雕零。零的現代意義,可以是無(wú),如“一切從零開(kāi)始”。
沒(méi)有0這個(gè)數,二進(jìn)制無(wú)從談起。
《易經(jīng)》有數理原理,八八六十四卦有簡(jiǎn)單的算術(shù)運算。
處理數據庫二進(jìn)制數據 我們在使用數據庫時(shí),有時(shí)會(huì )用到圖像或其它一些二進(jìn)制數據,這個(gè)時(shí)候你們就必須使用
getchunk這個(gè)方法來(lái)從表中獲得二進(jìn)制大對象,我們也可以使用AppendChunk來(lái)把數據插入到表中.
我們平時(shí)來(lái)取數據是這樣用的!
Getdata=rs("fieldname")
而取二進(jìn)制就得這樣
size=rs("fieldname").acturalsize
getdata=rs("fieldname").getchunk(size)
我們從上面看到,我們取二進(jìn)制數據必須先得到它的大小,然后再搞定它,這個(gè)好像是ASP中處理二進(jìn)制數據的常用方法,我們在獲取從
客戶(hù)端傳來(lái)的所有數據時(shí),也是用的這種方法。
下面我們也來(lái)看看是怎樣將二進(jìn)制數據加入數據庫
rs("fieldname").appendchunk binarydata
一步搞定!
另外,使用getchunk和appendchunk將數據一步一步的取出來(lái)!
下面演示一個(gè)取數據的例子!
Addsize=2
totalsize=rs("fieldname").acturalsize
offsize=0
Do Where offsize Binarydata=rs("fieldname").getchunk(offsize)
data=data&Binarydata
offsize=offsize+addsize
Loop
當這個(gè)程序運行完畢時(shí),data就是我們取出的數據.