數據在計算機中主要以補碼的形式存儲。電腦中的二進制是壹個非常微小的開關,“開”代表1,“關”代表0。
20世紀被稱為第三次科技革命的重要標誌之壹是計算機的發明和應用,因為數字計算機只能識別和處理由‘0’組成的代碼。1 '符號字符串。它的操作模式是二進制的。19世紀,愛爾蘭邏輯學家喬治·布爾(George Bull)將邏輯命題的思維過程轉化為符號“0”的某種代數演算。”1”,二進制是二進制。0,1是基本運算符。因為它只用到了0和1兩個數字,所以非常簡單方便,易於電子化實現。
簡要介紹了計算機的發明和應用,它被稱為20世紀第三次科技革命的重要標誌之壹,因為數字計算機只能識別和處理由‘0’組成的代碼。1 '符號字符串。它的操作模式是二進制的。19世紀,愛爾蘭邏輯學家喬治·布爾(George Bull)將邏輯命題的思維過程轉化為符號“0”的某種代數演算。”1”,二進制是二進制。0,1是基本運算符。因為它只用到了0和1兩個數字,所以非常簡單方便,易於電子化實現。
二進制和十六進制、八進制壹樣,都是用二的冪來進位的。
主要特點和優點:二進制數字器件簡單可靠,使用元件少;
只有0和1兩個數字,所以每個數字都可以用兩個不同穩定狀態的任意元素來表示。
基本操作規則簡單,操作方便。
缺點壹個數用二進制表示時,位數很多。所以在實際使用中,先用十進制,再送到數字系統,送到機器後再轉換成二進制數,這樣數字系統才能運算,運算後再把二進制轉換成十進制供人閱讀。
二進制和十六進制的轉換更重要。但是,不需要計算兩者之間的轉換。每個C和C++程序員都能看到二進制數,直接轉換成十六進制數,反之亦然。
我們也是壹樣,只要做完這壹節,我們就能做到。
首先我們來看壹個二進制數:1111。這是什麽?
妳可能要這樣算:1 * 2 0+1 * 2 1 * 2+1 * 2 3 = 1 * 1。
但是,由於1111只有4位數字,我們必須直接記住每壹位數字的權重,從高到低依次記錄:8,4,2,1。即最高位的權重是2 ^ 3 = 8,其次是2 ^ 2 = 4,2 ^ 1 = 2,2 ^ 0 = 1。
記住8421,對於任何壹個4位二進制數,我們都可以快速計算出它對應的10二進制值。
下面列出了四位二進制數xxxx的所有可能值(中間部分跳過)。
只有4位十進制值和16進制值的二進制數的快速計算方法
1111 = 8+4+2+1 = 15 F
1110 = 8+4+2+0 = 14 E
1101 = 8+4+0+1 = 13d
1100 = 8+4+0+0 = 12c
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
二進制數轉換成十六進制,即以4位為單位轉換成十六進制。
如(上面壹行是二進制數,下面壹行是對應的十六進制數):
1111 1101 , 1010 0101 , 1001 1011
聯邦開發署,A 5,9 B
反過來,當我們看到FD時,如何快速轉換成二進制數?
首先轉換f:
當我們看到F的時候,我們需要知道它是15(可能妳對A ~ F這六個數不熟悉),然後15怎麽才能用8421取整呢?應該是8+4+2+1,所以四位數都是1:1111。
然後轉換d:
看到D就知道是13,13。8421怎麽加?應該是:8+4+0+ 1,即:1101。
所以FD轉換成二進制數,就是:1111111。
因為十六進制轉換成二進制是相當直接的,所以當我們需要將壹個十進制數轉換成二進制數時,也可以先轉換成16,然後再轉換成二進制。
比如十進制數1234轉換成二進制數,如果想壹直除以2直接得到二進制數,就需要多次計算。所以我們可以除以16得到16:
股息計算過程商余數
1234 1234/16 77 2
77 77/16 4 13 (D)
4 4/16 0 4
結果16的十六進制數是0x4D2。
那麽我們可以直接寫出0x4D2的二進制形式:01001101 0010。
其中,映射關系為:
0100 - 4
1101 - D
0010 - 2
同樣,如果壹個二進制數很長,我們需要把它轉換成10,我們也可以把這個二進制數轉換成16,然後再轉換成10。
下面是壹個int類型的二進制數的示例:
01101101 11100101 10101111 00011011
我們把它轉換成四位壹組的16:6 D5 af 1B。
基本運算二進制數據算術運算的基本規律與十進制數的基本規律非常相似。最常用的是加法和乘法。
二進制加法有四種情況:0+0=0。
0+1=1
1+0=1
1+1=10
Ps:0攜帶1。
例1103求(1101)2+(1011)2的和
解決方案:
1 1 0 1
+1 0 1 1
-
1 1 0 0 0
二進制乘法有四種情況: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
(這些計算與十進制加法或乘法相同,只是小數位數不同。小數位要到十位才進位,這裏就到了兩位。)
3.二進制減法
0-0=0,1-0=1,1-1=0,10-1=1。
4.二進制除法
0÷1=0,1÷1=1。[1-2]
5.二元模加法
二進制加減乘除的特殊算法。
模加法和加法差不多,但是不需要進位。這種算法在博弈論中被廣泛使用。
計算機中十進制到二進制的轉換
計算機中的十進制小數是在二進制中得到的,通常是乘以二。
例如,0.65轉換為二進制:
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繼續乘以2進行四舍五入。
0.4 * 2 = 0.8取0,剩下0.8繼續乘以二進行四舍五入。
0.8 * 2 = 1.6取1,留0.6繼續乘二取整。
0.6 * 2 = 1.2取1,留0.2繼續乘二取整。
.......
循環直到達到精度極限(所以,計算機保存的小數通常是有誤差的,所以在編程中,如果要比較兩個小數是否相等,只能在壹定精度範圍內比較是否相等。)。這時,小數0.65可以用二進制表示為:1010011。
另外值得壹提的是,在現在的計算機中,除了十進制是有符號的,其他如二進制、八進制、16都是無符號的。
如何將十進制數轉換成二進制數、八進制數和十六進制數:
二進制數、八進制數和十六進制數轉換成十進制數的方法:加權展開和法
二進制和十進制之間的轉換(1)二進制到十進制
方法:“按重量展開求和”
例:(1011.01)2 =(1×2 ^ 3+0×2 ^ 2+1×2 ^ 1。
=(8+0+2+1+0+0.25)10
=(11.25)10
定律:單位的位數是0,十分位數是1,...,依次遞增,而第十位的位數是-1,百分位的位數是-2,...,依次遞減。
註意:不是任何十進制小數都能轉換成位數有限的二進制數。
(2)十進制到二進制
十進制整數到二進制數:“除以2為余數,按相反順序排列”(除以2為余數法)
例如:(89)10 =(1011001)2
89÷2 ……1
44÷2 ……0
22÷2 ……0
11÷2 ……1
5÷2 ……1
2÷2 ……0
1
十進制十進制數轉二進制數:“乘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
十進制1到100的二進制表示形式。
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
八進制到二進制的轉換二進制數轉換為八進制數:從小數點開始,整數部分向左,小數部分向右,每3位用壹個八進制數的數字表示。如果少於3位數,用“0”補足3位數,得到壹個八進制數。
將八進制數轉換為二進制數:將每個八進制數轉換為3位二進制數,得到壹個二進制數。
八進制數和二進制數的對應關系如下:
000->;0 100->;四
001->;1 101->;五
010->;2 110->;六
011->;3 111->;七
示例:將八進制37.416轉換為二進制數:
3 7 .4 1 6
011 111 .100 001 110
即:(37.416)8 =(1111.100011)2。
示例:將二進制10110.0011轉換為八進制:
0 1 0 1 1 0 .0 0 1 1 0 0
2 6 .1 4
即:(10110.011)2 =(26.14)8。
十六進制和二進制轉換二進制數轉換成十六進制數:從小數點開始,整數部分向左,小數部分向右,每四位用壹個十六進制數表示。如果少於四位數,您應該用“0”組成四位數,以獲得壹個十六進制數。
將十六進制數轉換成二進制數:將每個十六進制數轉換成4位二進制數,就得到壹個二進制數。
十六進制數和二進制數的對應關系如下:
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
示例:將十六進制數5DF.9轉換為二進制數:
第五天第九天
0101 1101 1111 .1001
即:(5df . 9)16 =(101011111111.1066。
示例:將二進制數110001.11轉換為十六進制:
0110 0001 .1110
6 1 .E
即:(110001.111)2 =(61。E) 16。
其他信息被視為20世紀第三次科技革命重要標誌之壹的計算機的發明和應用,具有二進制運算模式,證明萊布尼茨原理是正確的。
二進制數據的表示二進制數據也采用位置計數法,其比特權重是以2為底的冪。例如,對於二進制數據110.11,權重的順序是2 ^ 2,2 ^ 1,2-1,2-2。對於n位數的整數和m位數的小數,二進制數據用加權系數展開表示,可以寫成:
(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)
壹般二進制數據可以寫成:(a(n-1)a(n-2)…a(1)a(0)。a (-1) a (-2) … a (-m)) 2。
註意:
1.公式中,aj表示第j位的系數,為0和1中的壹個。
2.A (n-1)中的(n-1)是下標,不能輸入輸入法,所以用括號括起來,以免混淆。
3.2 2代表2的平方,以此類推。
例1102二進制數據111寫成加權系數。
解法:(111)2 =(1×2 ^ 2)+(1×2 1)+(1×2 ^ 0)
二進制和十六進制、八進制壹樣,都是用二的冪來進位的。
萊布尼茨和二進制在德國圖林根州著名的Schlos *** iliothke zu Gotha保存了壹份珍貴的手稿,題目是:“1和0,所有數字的神奇起源。這是創造秘密的壹個極好的例子,因為壹切都來自上帝。”這是戈特弗裏德·威廉·萊布尼茨(1646-1716)的筆跡。然而,萊布尼茨對這個神奇而奇妙的數字系統只有幾頁極其精煉的描述。
萊布尼茨不僅發明了二進制,還賦予了它宗教內涵。他在給當時正在中國傳教的法國耶穌會教士約阿希姆·布維(1662-1732)的信中說:“第壹天是從1,也就是上帝開始的。第二天的開始是2...第七天,什麽都有了。所以,這最後壹天也是最完美的。因為這個時候,世間萬物都已經被創造出來了。所以寫成' 7 ',即' 111 '(二進制的11等於十進制的7),不含0。只有當我們只用0和1來表示這個數字時,我們才能理解為什麽第七天是最完美的,為什麽7是壹個神聖的數字。特別值得註意的是,它的特征(寫二進制111)與三位壹體有關。”
布維耶是漢學大師,他對中國的介紹是17和18世紀歐洲學術界中國熱的最重要原因之壹。布維耶是萊布尼茨的好朋友,與他保持著頻繁的通信聯系。萊布尼茨曾經把布維耶的很多文章翻譯成德文出版。是蔔維向萊布尼茨介紹了《周易》和八卦體系,說明了《周易》在中國文化中的權威地位。
八卦是由八個符號組組成的占蔔系統,這些符號分為連續和不連續的橫線。在萊布尼茨看來,這兩個後來被稱為“陰”和“陽”的符號是他的二進制系統的中國復制品。他覺得這個來自中國古代文化的符號系統和他的二進制系統之間的關系太明顯了,所以他斷言二進制系統是世界上最完美的具有普遍性的邏輯語言。
另壹個可能引起萊布尼茨對八卦興趣的人是威廉·恩斯特·坦策爾(Wilhelm Ernst Tentzel),他當時是圖林根州大公錢幣收藏室的負責人,也是萊布尼茨的好朋友之壹。他負責的錢幣收藏中有壹枚帶有八卦符號的錢幣。
聯系中國易經
1679年3月5日,戈特弗裏德·威廉·萊布尼茨發明了壹種計算方法,將原來的十位數換成兩位數,即1和0。1701年,他給在京的牧師馬爾迪(中文名閔明明)和布維(中文名白晉)寫信,告知他們自己的新發明,希望能引起他心目中的算術愛好者康熙皇帝的興趣。
白晉很驚訝,因為他發現這種“二進制算術”很像中國古代壹種以兩個符號為基礎的符號系統,由壹條直線和兩條短線組成,即──和──組成。這是中國最著名也可能是最古老的書《易經》的基本組成部分。根據目前的推測,這本書產生於公元前第壹個千年之初。起初主要是占蔔用的書,裏面的兩個符號可能分別代表“是”和“不是”。
萊布尼茨對這種相似性感到驚訝。和他的筆友白晉壹樣,他也深信《易經》在數學上的意義。他認為古代的中國人掌握了二進制,在科學上遠遠超過中國人。現在我們可以肯定的說,這個解釋和《易經》無關。《易經》不是壹本數學書,而是壹本“預言書”,在漫長的歷史中逐漸演變成了壹本“智慧書”。書中的短線是指陰陽相對,即天地、光明與黑暗、造物主與自然。六卦以不同的組合出現,人們可以對自然和人類生活的轉變做出不同的解釋。孔子。西那魯姆·哲人(“孔子,中國思想家,……”),比利時教士p·古力(中文名白英利),在歐洲首次出版了六十四卦《易經》。
這種把數學和中國古代的易經聯系起來的嘗試是不實際的。萊布尼茨的二進制數學指向的不是古代中國,而是未來。萊布尼茨在1679年3月的日記中記錄了他的二進制系統,同時,他設計了壹臺可以完成數字計算的機器。今天的現代技術把這種想法變成了現實,這是萊布尼茨時代人們無法想象的。
計算機使用二進制的原因。
(1)技術實現簡單,計算機由邏輯電路組成,邏輯電路通常只有兩種狀態,即開關的通斷,用“1”和“0”來表示即可。
(2)簡化運算規則:兩個二進制數的和與積運算有三種組合,運算規則簡單,有利於簡化計算機內部結構,提高運算速度。
(3)適合邏輯運算:邏輯代數是邏輯運算的理論基礎,二進制只有兩位數,與邏輯代數中的“真”和“假”不謀而合。
(4)容易轉換,二進制數和十進制數容易相互轉換。
(5)用二進制表示數據,抗幹擾能力強,可靠性高。因為每個數據只有高和低兩種狀態,所以在受到壹定程度的擾動時,仍然可以可靠地區分是高還是低。
改革開放前,中國大部分人都不知道什麽是電腦。1980年,第壹臺搭載8086CPU芯片的美國個人電腦(PC)上市,80年代初,中國出現了進口電腦。壹臺蘋果電腦將近2萬元,是普通幹部職工工資的幾百倍,個人根本買不起。20世紀90年代後,隨著互聯網在中國的普及,電腦逐漸為中國人所熟悉。
面對國外先進的科技,國內壹些傳統文化人不服氣,他們連基本的數學知識都沒有,卻說計算機二進制的原理源於中國的《周易》。這些知識分子有著相同的特點。他們壹邊大力宣傳用傳統文化抵制西方文化,壹邊喜歡拉壹個外國名人來鼓勵自己。但是忽略了壹點,既然老祖宗的東西那麽偉大,為什麽中國人不能發明出來,讓西方人萊布尼茨帶頭呢?
飛機和鳥都可以在天上飛,但飛機的原理不是來自鳥。同樣,萊布尼茨看過中國的太極圖,也不能證明計算機二進制原理起源於《易經》。
據說伏羲創造了八卦。傳說中的伏羲時代已有5000多年的歷史。人類早在5000多年前就有了計數的能力,但直到公元628年,印度人Brahmagupta首次使用o . Bhaskara(12世紀的印度人)指出正數有兩個平方根,壹個是正數,壹個是負數。(英國人M·克萊因《數學:決定論的喪失》,湖南科學技術出版社)。
0不僅表示“無”或“無”,如0度的溫度,還表示沒有溫度。用0可以建立壹個參照系,比如取直線上任意壹點為0,0點左邊為負,右邊為正。
學過計算機原理的人都知道,計算機電路的高低電平對應的是二進制數1和0。如果高電平為1,低電平為0;反之,高電平為0,低電平為1。這是壹個正邏輯和反邏輯的問題。計算機的工作原理是基於“布爾代數”,進行邏輯運算。計算機電路雖然很復雜,但基本單元很簡單,由或門、與門、非門、與非門、或非門、異或門、異或門、異或門等組成。
因為計算機是高科技,所以有些人想當然地認為二進制也是高科技。如《百家講壇》的毛佩革教授在其著作《圖解周易》中說,二進制是“世界上最先進的數學體系”,“20世紀被稱為計算機的發明和應用,是第三次科技革命的重要標誌之壹,其運算方式是二進制。不僅證明了萊布尼茨的原理是正確的,也證明了易經的數學原理是偉大的。”
毛教授代表了中國相當壹部分有傳統文化的人的觀點。這是對數學體系的無知,數學體系原理沒有“對”和“錯”,更談不上“先進”和“落後”。
數學運算用什麽格式,要看什麽場合,用什麽方便。數學上有二進制,八進制,十進制,十六進制,六十進制,…等等。原則上,只要實用,任何數制都可以采用。壹年12個月是小數,壹年365天是365小數。不同十進制的數字可以相互轉換,比如十進制135,二進制1000111,二進制101轉換成十進制5。顯然,手動將十進制數135除以5是非常簡單的,但將十進制數1000111除以二進制數101是最笨拙的計算。
易經中的八卦都標有壹條長線“壹”和壹條折線“-”(西漢馬王堆考古證明顯示陰線為“
有人認為把八卦的正“壹”看成1,負“-”看成0,是二元的。這很牽強,因為在八卦的年代,根本沒有0和1的概念。
乾坤兩卦象征天地。幹卦由三個陽爻“壹”疊加在頂部,三個陰爻“-”疊加在頂部和底部。如果把符號“壹”看成1,把符號“-”看成0,那麽這三個卦就是二進制的111,對應十進制的7;坤卦三卦是二進制000,對應十進制0。
《內聚力》說:“易有太極,意為生二器,二器生四象,四象生八卦。”太極的意思是無中生有,無中生有,產生八卦。如果0等於零,太極就是0。這不是和上面說坤是0不壹致嗎?而且,幹邑、兌、李三、真司、尋烏、劉戡、艮氣、昆巴這八個卦的“數”也不能對應它們六個卦轉換成的“二進制數”。
兩個八卦疊加成六十四卦,每卦由六個卦組成。比如,卦是六個壹,對應二進制111111,換算成十進制,25+24+23+22+21+20 = 63;坤卦中有六個負號“-”,對應二進制000000。換算成十進制,還是0。六十四卦的“數”不能對應其六爻轉換成的“二進制數”。
古代漢字有“零”,不等於0。零的含義是:1,局部細碎,與整體相對,如零碎,十元八分;2、墜,如雕零。零的現代意義可以是什麽都沒有,比如“壹切從零開始”。
沒有數字0,二進制無從談起(有沒有0無所謂,0和1只是代表了單詞的通斷。)。
易經有數學原理,8864卦有簡單的算術運算,但二進制起源於八卦,這是基於誤傳。祖先在古代繪制的八卦占蔔符號,變成了高科技計算機的數學原理,無疑是現代版的天方夜譚。
處理數據庫中的二進制數據
當我們使用數據庫時,我們有時會使用圖像或其他二進制數據。這時候妳必須使用getchunk的方法從表中獲取二進制大對象,我們也可以使用AppendChunk向表中插入數據。
這就是我們通常獲取數據的方式!
Getdata=rs("字段名稱")
這就是得到二進制的代價。
size=rs("字段名稱")。實際尺寸
getdata=rs("fieldname ")。getchunk(大小)
從上面可以看出,我們必須先得到二進制數據的大小,然後再修復它。這似乎是ASP中處理二進制數據的常用方法,我們從客戶端獲取所有數據時也使用這種方法。
讓我們看看如何向數據庫添加二進制數據。
rs(“字段名稱”)。appendchunk二進制數據
壹步!
另外用getchunk和appendchunk壹步步把數據弄出來!
我們來演示壹個獲取數據的例子!
Addsize=2
totalsize=rs("fieldname ")。實際尺寸
offsize=0
do Where offsize binary data = RS(" field name ")。getchunk(offsize)
數據=數據& amp二元數據
offsize=offsize+addsize
環
當這個程序完成後,數據就是我們取出的數據。