tft每日頭條

 > 生活

 > 二進制有關知識

二進制有關知識

生活 更新时间:2024-12-04 23:42:13

二進制有關知識?二進制二進制是計算技術中廣泛采用的一種數制二進制數據是用0和1兩個數碼來表示的數它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二”,由18世紀德國數理哲學大師萊布尼茲發現當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的計算機中的二進制則是一個非常微小的開關,用“開”來表示1,“關”來表示0,我來為大家科普一下關于二進制有關知識?下面希望有你要的答案,我們一起來看看吧!

二進制有關知識(二進制相關文獻)1

二進制有關知識

二進制

二進制是計算技術中廣泛采用的一種數制。二進制數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二”,由18世紀德國數理哲學大師萊布尼茲發現。當前的計算機系統使用的基本上是二進制系統,數據在計算機中主要是以補碼的形式存儲的。計算機中的二進制則是一個非常微小的開關,用“開”來表示1,“關”來表示0。

20世紀被稱作第三次科技革命的重要标志之一的計算機的發明與應用,因為數字計算機隻能識别和處理由‘0’.‘1’符号串組成的代碼。其運算模式正是二進制。19世紀愛爾蘭邏輯學家喬治布爾對邏輯命題的思考過程轉化為對符号"0''.''1''的某種代數演算,二進制是逢2進位的進位制。0、1是基本算符。因為它隻使用0、1兩個數字符号,非常簡單方便,易于用電子方式實現。

目錄

  • 1 表示法
  • 2 運算
  • 3 進制轉換
  • 4 萊布尼茨
  • 5 特點
  • 6 采用原因
  • 7 澄清關系
  • 8 處理數據
  • 9 換算

1表示法

二進制數據的表示法

二進制數據也是采用位置計數法,其位權是以2為底的幂。例如二進制數據110.11,逢2進1,其權的大小順序為2²、2¹、2º、 、 。對于有n位整數,m位小數的二進制數據用加權系數展開式表示,可寫為:

二進制數據一般可寫為:

【例1102】将二進制數據111.01寫成加權系數的形式。

解:

二進制和十六進制,八進制一樣,都以二的幂來進位的。

2運算

加法

有四種情況: 0 0=0

0 1=1

1 0=1

1 1=10

0 進位為1

【例1103】求 1011(2) 11(2) 的和

解:

乘法

有四種情況: 0×0=0

1×0=0

0×1=0

1×1=1

減法

0-0=0,1-0=1,1-1=0,0-1=1。

除法

0÷1=0,1÷1=1。

拈加法

拈加法二進制是加減乘除外的一種特殊算法。

拈加法運算與進行加法類似,但不需要做進位。此算法在博弈論(Game Theory)中被廣泛利用

計算機中的十進制小數轉換二進制

計算機中的十進制小數用二進制通常是用乘二取整法來獲得的。

比如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繼續乘二取整

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,用二進制就可以表示為:0.1010011。

還值得一提的是,在計算機中,除了十進制是有符号的外,其他如二進制、八進制、16進制都是無符号的。

在現實生活和記數器中,如果表示數的“器件”隻有兩種狀态,如電燈的“亮”與“滅”,開關的“開”與“關”。一種狀态表示數碼0,另一種狀态表示數碼1,1加1應該等于2,因為沒有數碼2,隻能向上一個數位進一,就是采用“滿二進一”的原則,這和十進制是采用“滿十進一”原則完全相同。

1 1=10,10 1=11,11 1=100,100 1=101,

101 1=110,110 1=111,111 1=1000,……,

可見二進制的10表示二,100表示四,1000表示八,10000表示十六,……。

二進制同樣是“位值制”。同一個數碼1,在不同數位上表示的數值是不同的。如11111,從右往左數,第一位的1就是一,第二位的1表示二,第三位的1表示四,第四位的1表示八,第五位的1表示十六。

所謂二進制,也就是計算機運算時用的一種算法。二進制隻由一和零組成。

比方說吧,你上一年級時一定聽說過“進位筒”(“數位筒”)吧!十進制是個位上滿十根小棒就捆成一捆,放進十位筒,十位筒滿十捆就捆成一大捆,放進百位筒……

二進制也是一樣的道理,個位筒上滿2根就向十位進一,十位上滿兩根就向百位進一,百位上滿兩根…… 二進制是世界上第一台計算機上用的算法,最古老的計算機裡有一個個燈泡,當運算的時候,比如要表達“一”,第一個燈泡會亮起來。要表達“二”,則第一個燈泡熄滅,第二個燈泡就會亮起來。

二進制就是等于2時就要進位。

0=00000000

1=00000001

2=00000010

3=00000011

4=00000100

5=00000101

6=00000110

7=00000111

8=00001000

9=00001001

10=00001010

……

即是逢二進一,二進制廣泛用于最基礎的運算方式,計算機的運行計算基礎就是基于二進制來運行。隻是用二進制執行運算,用其他進制表現出來。

其實把二進制三位一組分開就是八進制, 四位一組就是十六進制

3進制轉換

十進制數轉換為二進制數、八進制數、十六進制數的方法:

二進制數、八進制數、十六進制數轉換為十進制數的方法:按權展開求和法

與十進制

(1)二進制轉十進制

方法:“按權展開求和”

【例】:

規律:個位上的數字的次數是0,十位上的數字的次數是1,......,依次遞增,而十

分位的數字的次數是-1,百分位上數字的次數是-2,......,依次遞減。

注意:不是任何一個十進制小數都能轉換成有限位的二進制數。

(2)十進制轉二進制

· 十進制整數轉二進制數:“除以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至128的二進制表示:

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

101=1100101

102=1100110

103=1100111

104=1101000

105=1101001

106=1101010

107=1101011

108=1101100

109=1101101

110=1101110

111=1101111

112=1110000

113=1110001

114=1110010

115=1110011

116=1110100

117=1110101

118=1110110

119=1110111

120=1111000

121=1111001

122=1111010

123=1111011

124=1111100

125=1111101

126=1111110

127=1111111

128=10000000

.十進制負數轉二進制:“先取正數的二進制值,再取反,加1”

【例】:(-31) = (1)

31的二進制數為11111,取反00000,加1得1。

與八進制

二進制數轉換成八進制數:從小數點開始,整數部分向左、小數部分向右,每3位為一組用一位八進制數的數字表示,不足3位的要用“0”補足3位,就得到一個八進制數。

八進制數轉換成二進制數:把每一個八進制數轉換成3位的二進制數,就得到一個二進制數。

八進制數字與十進制數字對應關系如下:

000 -> 0 | 004-> 4 | 010=8

001 -> 1 |005 -> 5| 011=9

002 -> 2 |006 -> 6 | 012=10

003 -> 3 |007 -> 7 | 013=11

【例】:将八進制的37.416轉換成二進制數:

3 7 . 4 1 6

011 111 .100 001 110

即:(37.416)8 =(11111.10000111)2

【例】:将二進制的10110.0011 轉換成八進制:

0 1 0 1 1 0 . 0 0 1 1 0 0

2 6 . 1 4

即:(10110.0011)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 轉換成二進制:

5 D F . 9

0101 1101 1111 .1001

即:(5DF.9)16 =(10111011111.1001)2{十六進制怎麼會有小數點}

【例】:将二進制數1100001.111 轉換成十六進制:

0110 0001 . 1110

6 1 . E

即:(1100001.111)2 =(61.E)16

與十進制的區别

二進制與十進制的區别在于數碼的個數和進位規律有很大的區别,顧名思義,二進制的計數規律為逢二進一,是以2為基數的計數體制。10這個數在二進制和十進制中所表示的意義完全不同,在十進制中就是我們通常所說的十,在二進制中,其中的一個意義可能是表示一個大小等價于十進制數2的數值。

仿照例題1.3.1,我們可以将二進制數10表示為:10=1×2^1 0×2^0

一般地,任意二進制數可表示為:

例題 1.3.2 試将二進制數(01010110)B轉換為十進制數。

解:将每一位二進制數乘以位權後相加便得相應的十進制數

在數字電子技術和計算機應用中,二值數據常用數字波形來表示

。使用數字波形可以使得數據比較直觀,也便于使用電子示波器進行監視。圖1.3.3表示一計數器的波形。

圖1.3.3 用二進制數表示0~15波形圖

圖中給出了四個二進制波形。看這種二進制波形圖時,我們應當沿着圖中虛線所示的方向來看,即使圖中沒有标出虛線(一般都沒有标出),也要想象出虛線來。其中在每一個波形上方的數字表示了與波形對應的位的數值,最後一行則是相應的十進制數 ,其中LSB是英文Least Significant Bit的縮寫,表示最低位,MSB是Most Significant Bit的縮寫,表示二進制數的最高位。顯然,這是一組4位的二進制數,總共有16組,最左邊的二進制數為0000,最上邊的波形代表二進制數的最低位,也就是通常在十進制數中我們所說的個位數,最下面的是最高位。圖中最右邊的二進制數為1111,對應的十進制數為15。再來看看對應于十進制數5的二進制數是多少呢?是0101,對了,讀數的順序是從下往上。

二進制數在數字系統(比如計算機之間)中的傳輸的方式分為串行和并行兩種。

其中串行傳輸時二進制數是按照逐位傳遞的方式進行傳輸,根據實際情況可以從最高位或最低位開始傳輸,一般情況下是從最高位開始傳輸的。隻需要一根數據線。如圖1.3.4所示,要完成八位二進制數的傳輸,需要經曆八個時鐘周期。

圖1.3.4 二進制數據的串行傳輸

(a) 兩台計算機之間的串行通信 (b) 二進制數據的串行表示

典型的例子是調制解調器與計算機之間的通信就是通過串行傳輸來完成的。

并行傳輸的效率要高于串行傳輸,一次可以傳輸完整的一組二進制數。但是根據所要傳輸的二進制數的位數的多少,需要備足足夠多的數據線。一般來說,常見的并行傳輸采用的數據線有8、16、32等,再多就很少見了。典型的并行傳輸例子是打印機與計算機之間的通信傳輸,見圖1.3.5。

圖1.3.5 并行傳輸數據的示意圖

(a) 計算機與打印機之間的并行通信 (b) 二進制數據的并行表示

圖1.3.5顯示了采用并行傳輸模式,隻需要一個時鐘周期,即可完成八位二進制數的傳輸。

4萊布尼茨

在德國圖靈根著名的郭塔王宮圖書館(Schlossbiliothke zu Gotha)保存着一份彌足珍貴的手稿,其标題為:“1與0,一切數字的神奇淵源。這是造物的秘密美妙的典範,因為,一切無非都來自上帝。”這是德國天才大師萊布尼茨(Gottfried Wilhelm Leibniz,1646 - 1716)的手迹。但是,關于這個神奇美妙的數字系統,萊布尼茨隻有幾頁異常精煉的描述。

萊布尼茨不僅發明了二進制,而且賦予了它宗教的内涵。他在寫給當時在中國傳教的法國耶稣士會牧師布維(Joachim Bouvet,1662 - 1732)的信中說:“第一天的伊始是1,也就是上帝。第二天的伊始是2,……到了第七天,一切都有了。所以,這最後的一天也是最完美的。因為,此時世間的一切都已經被創造出來了。因此它被寫作‘7’,也就是‘111’(二進制中的111等于十進制的7),而且不包含0。隻有當我們僅僅用0和1來表達這個數字時,才能理解,為什麼第七天才最完美,為什麼7是神聖的數字。特别值得注意的是它(第七天)的特征(寫作二進制的111)與三位一體的關聯。”

布維是一位漢學大師,他對中國的介紹是17、18世紀歐洲學界中國熱最重要的原因之一。布維是萊布尼茨的好朋友,一直與他保持着頻繁的書信往來。萊布尼茨曾将很多布維的文章翻譯成德文,發表刊行。恰恰是布維向萊布尼茨介紹了《周易》和八卦的系統,并說明了《周易》在中國文化中的權威地位。

八卦是由八個符号組構成的占蔔系統,而這些符号分為連續的與間斷的橫線兩種。這兩個後來被稱為“陰”、“陽”的符号,在萊布尼茨眼中,就是他的二進制的中國翻版,但實際萊布尼茨是受中國陰陽太極影響,隻不過他付出了諸多研究,推演出二進制。他感到這個來自古老中國文化的符号系統與他的二進制之間的關系實在太明顯了,因此斷言:二進制乃是具有世界普遍性的、最完美的邏輯語言。

另一個可能引起萊布尼茨對八卦的興趣的人是坦澤爾(Wilhelm Ernst Tentzel),他當時是圖靈根大公爵硬币珍藏室的領導,也是萊布尼茨的好友之一。在他主管的這個硬币珍藏中有一枚印有八卦符号的硬币。

與中國易經聯系

1679年3月15日戈特弗裡德·威廉·萊布尼茨發明了一種計算法,用兩位數代替原來的十位數,即1 和 0。 1701年他寫信給在北京的神父 Grimaldi(中文名字闵明我)和 Bouvet(中文名字白晉)告知自己的新發明,希望能引起他心目中的“算術愛好者”康熙皇帝的興趣。

白晉很驚訝,因為他發現這種“二進制的算術”與中國古代的一種建立在兩個符号基礎上的符号系統是非常近似的,這兩個符号分别由一條直線和兩條短線組成,即── 和 — —。這是中國最著名大概也是最古老的書《易經》的基本組成部分,據今人推測,該書大約産生于公元前第一個千年的初期,開始主要是一部占蔔用書,裡邊的兩個符号可能分别代表“是”和“不”。萊布尼茨對這個相似也很吃驚,和他的筆友白晉一樣,他也深信《易經》在數學上的意義。他相信古代的中國人已經掌握了二進制并在科學方面遠遠超過當代的中國人。

這一次将數學與古代中國《易經》相聯的嘗試是不符合實際的。萊布尼茨的二進制數學指向的不是古代中國,而是未來。萊布尼茨在1679年3月15日記錄下他的二進制體系的同時,還設計了一台可以完成數碼計算的機器。我們今天的現代科技将此設想變為現實,這在萊布尼茨的時代是超乎人的想象能力的。

5特點

優點

數字裝置簡單可靠,所用元件少;

隻有兩個數碼0和1,因此它的每一位數都可用任何具有兩個不同穩定狀态的元件來表示;

基本運算規則簡單,運算操作方便。

缺點

用二進制表示一個數時,位數多。因此實際使用中多采用送入數字系統前用十進制,送入機器後再轉換成二進制數,讓數字系統進行運算,運算結束後再将二進制轉換為十進制供人們閱讀。

二進制和十六進制的互相轉換比較重要。不過這二者的轉換卻不用計算,每個C,C 程序員都能做到看見二進制數,直接就能轉換為十六進制數,反之亦然。

我們也一樣,隻要學完這一小節,就能做到。

首先我們來看一個二進制數:1111,它是多少呢?

你可能還要這樣計算:1 × 2º 1 × 2¹ 1 × 2² 1 × 2³ = 1 × 1 1 × 2 1 × 4 1 × 8 = 15。

然而,由于1111才4位,所以我們必須直接記住它每一位的權值,并且是從高位往低位記,:8、4、2、1。即,最高位的權值為2³ = 8,然後依次是 2² = 4,2¹=2, 2º = 1。

記住8421,對于任意一個4位的二進制數,我們都可以很快算出它對應的10進制值。

下面列出四位二進制數 xxxx 所有可能的值(中間略過部分)

僅4位的2進制數快速計算方法 十進制值 十六進值

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

....

0001 = 0 0 0 1 = 1

0000 = 0 0 0 0 = 0 0

二進制數要轉換為十六進制,就是以4位一段,分别轉換為十六進制。

如(上行為二制數,下面為對應的十六進制):

1111 1101 , 1010 0101 , 1001 1011

F D , 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 1,即:1101。

所以,FD轉換為二進制數,為: 1111 1101

由于十六進制轉換成二進制相當直接,所以,我們需要将一個十進制數轉換成2進制數時,也可以先轉換成16進制,然後再轉換成2進制。

比如,十進制數 1234轉換成二制數,如果要一直除以2,直接得到2進制數,需要計算較多次數。所以我們可以先除以16,得到16進制數:

被除數 計算過程 商 餘數

1234 1234/16 77 2

77 77/16 4 13 (D)

4 4/16 0 4

結果16進制為: 0x4D2

同樣,如果一個二進制數很長,我們需要将它轉換成10進制數時,除了前面學過的方法是,我們還可以先将這個二進制轉換成16進制,然後再轉換為10進制。

6采用原因

(1)技術實現簡單,計算機是由邏輯電路組成,邏輯電路通常隻有兩個狀态,開關的接通與斷開,這兩種狀态正好可以用“1”和“0”表示。

(2)簡化運算規則:兩個二進制數和、積運算組合各有三種,運算規則簡單,有利于簡化計算機内部結構,提高運算速度。

(3)适合邏輯運算:邏輯代數是邏輯運算的理論依據,二進制隻有兩個數碼,正好與邏輯代數中的“真”和“假”相吻合。

(4)易于進行轉換,二進制與十進制數易于互相轉換。

(5)用二進制表示數據具有抗幹擾能力強,可靠性高等優點。因為每位數據隻有高低兩個狀态,當受到一定程度的幹擾時,仍能可靠地分辨出它是高還是低。

7澄清關系

二進制是一種非常古老的進位制,由于在現代被用于電子計算機中,而舊貌換新 顔變 得身價倍增起來。或許是出于證明我國古代人的偉大智慧這樣的好心吧 ,許多人從我國偉大而神秘 的《周易》中發現了二進制。當有人發現萊布尼茲曾将二進制與中國《周易》聯系在一起時, 就自認為找到了一個更為有力的證據。于是,一個神話就被泡制出來了。其大意是:萊布尼 茲通過在中國的傳教士,得到了八卦圖,他領悟到隻要把八卦中的陰爻代表0,陽爻代表1, 就可以創立一種新的記數法:二進制。這一神話雖然已經被部分數學史家進行了批駁,但至今仍廣為傳播。因而,我們有必要更詳盡地對萊布尼茲、二進制與《周易》三者的關系做一澄清、說明 的工作。

改革開放前,大多數中國人不知道計算機是什麼東西。1980年,美國人第一台8086CPU芯片個人計算機(PC,俗稱電腦)上市,80年代初,中國出現了進口電腦。一台蘋果機,價格近兩萬元,是普通幹部工人工資的數百倍,個人根本沒有能力購買。90年代以後中國有了互聯網,電腦才逐步為中國人所熟悉。

8處理數據

我們在使用數據庫時,有時會用到圖像或其它一些二進制數據,這個時候你們就必須使用getchunk這個方法來從表中獲得二進制大對象,我們也可以使用AppendChunk來把數據插入到表中.

我們平時來取數據是這樣用的!

Getdata=rs("fieldname")

而取二進制就得這樣

size=rs("fieldname").acturalsize

getdata=rs("fieldname").getchunk(size)

我們從上面看到,我們取二進制數據必須先得到它的大小,然後再搞定它,這個好像是ASP中處理二進制數據的常用方法,我們在獲取從客戶端傳來的所有數據時,也是用的這種方法。

下面我們也來看看是怎樣将二進制數據加入數據庫

rs("fieldname").appendchunk binarydata

一步搞定!

另外,使用getchunk和appendchunk将數據一步一步的取出來!

下面演示一個取數據的例子!

Addsize=2

totalsize=rs("fieldname").acturalsize

offsize=0

Do Where offsize Binarydata=rs("fieldname").getchunk(offsize)

data=data&Binarydata

offsize=offsize addsize

Loop

當這個程序運行完畢時,data就是我們取出的數據.

9換算

從小數點開始3位(不足3位補0)二進制數得到1位八進制數

(用B代表二進制,用O代表八進制):000B=0O、001B=1O、010B=2O、011B=3O、100B=4O、101B=5O、110B=6O。

二進制與十進制的“1248"換算法:例

十進制168421二進制10101

即16 4 1=21

簡單來說,就是把二進制數代入表格内,十進制數不變,隻要把有十進制中對應1的數加起來就可以得出結果。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved