- 大學(xué)計算機基礎(chǔ)教程
- 賴慶 劉松
- 1660字
- 2019-10-14 11:38:02
1.2.2 奇妙的二進制
人們對于十進制運算非常熟悉,如:12+23=35,利用心算就可以得出答案;如果是75+88×22,這樣比較復(fù)雜的運算,利用紙和筆也可以很快計算出來;但是如果要計算1×2×3×4×5×6×…10000這樣的問題,如果沒有計算機的幫助,很難快速計算出來。
這里首先要解決的是如何用機器表示十進制的問題,當然在前面機械式計算機用齒輪的方法解決了十進制的問題,但是機械的方法太慢,能夠計算的數(shù)值不夠大。在現(xiàn)代電子技術(shù)中速度最快、使用最多的是電磁波,利用電壓顯然是可以表示,如12+23,可以將12V的電壓與23V的電壓疊加,可以得到35V的電壓,但是現(xiàn)代電子制造技術(shù)證明,得到10個狀態(tài)穩(wěn)定的電壓是較困難的,會極大提高硬件制造的成本,但是利用電子技術(shù)得到2個穩(wěn)定的電壓狀態(tài)相對容易很多,成本也低很多,因此,二進制成為計算機的首選。另外,布爾代數(shù)的出現(xiàn),解決了二進制的運算法則問題,開關(guān)電路的發(fā)明解決了用低成本的物理器件實現(xiàn)二進制的物理問題。那么,二進制的奇妙之處在哪里呢?
1.物理實現(xiàn)性價比高
開關(guān)電路利用電壓的高電平和低電平分別表示二進制的1和0,當然,反過來也可以,如果5V表示1,0V表示0,顯然二者的電壓差為5V。如果是十進制,0、1、2、3、4、5、6、7、8、9十個狀態(tài)的表示就要十個電壓值,如果壓差同樣達到5V,那么電路的最大電壓就達到50V,由于電路都存在電阻,電壓越高,電路的損耗越大,電路和器件更容易發(fā)熱,造成元器件損壞,顯然這不是最好的選擇。
2.運算法則簡單
二進制的運算法則非常簡單,因為運算法則的多少直接決定了運算機器的復(fù)雜程度。也就是說,運算規(guī)則越多,執(zhí)行運算任務(wù)的機器越復(fù)雜;運算規(guī)則越少,執(zhí)行運算任務(wù)的機器越簡單。因此,選用二進制方式對設(shè)計運算機器特別有利。對于計算機來說,相當于簡化了中央處理器(CPU)的設(shè)計。如果采用十進制,將大大增加制造成本。二進制主要有以下運算法則:
(1)算術(shù)運算
①加法運算(4條規(guī)則)。
0+0=0 0+1=1 1+0=1 1+1=10(向高位進位,逢二進一)
例如,(11011)2+(1001)2=(100100)2
②減法運算(4條規(guī)則)。
0-0=0 1-1=0 1-0=1 0-1=1(向高位借位,借一當二)
例如,(1110)2-(1001)2=(101)2
③乘法運算(4條規(guī)則)。
0×0=0 0×1=0 1×0=0 1×1=1
④除法運算。
0÷0無意義0÷1=01÷1=11÷0無意義
(2)移位運算
①左移:二進制的左移1位運算相當于乘2運算,所以CPU在進行乘法運算時采用的就是左移和加法運算。
②右移:二進制的右移1位運算相當于除2運算,所以CPU在進行除法運算時采用的就是右移和減法運算。
例如,3×2的二進制運算0011×0010,只要將0011左移1位,變?yōu)?110,對應(yīng)于十進制的6。
(3)邏輯運算
由于二進制只有兩種狀態(tài)(符號),從而便于進行邏輯判斷和邏輯運算。二進制數(shù)的“1”和“0”可分別表示邏輯值的“真”和“假”。邏輯運算包括邏輯或、邏輯與、邏輯非3種運算。
①邏輯或運算(運算符為“or”)。或運算規(guī)則如下:
0or0=0 0or1=1 1or0=1 1or1=1
邏輯或運算特點:只要有一個為真結(jié)果為真。
例如,按位求二進制數(shù)111010和101100的或運算,其算式如下:

②邏輯與運算(運算符為“and”)。與運算規(guī)則如下:
0and0=0 0and1=0 1and0=0 land1=1
邏輯與運算特點:當兩個都為真時,結(jié)果才為真。
例如,按位求二進制數(shù)111010和101100的與運算,其算式如下:

③邏輯非運算(邏輯否定,運算符為“not”)
非運算規(guī)則為:not0=1 not1=0
利用3種基本邏輯運算可以組合成多種邏輯運算,如異或、同或、與非、或非等。
3.數(shù)據(jù)存儲容易實現(xiàn)
計算機處理的數(shù)據(jù)和結(jié)果需要永久存儲,采用二進制形式記錄數(shù)據(jù),物理上容易實現(xiàn)。現(xiàn)代計算機實現(xiàn)數(shù)據(jù)存儲的方式有磁存儲、光存儲、半導(dǎo)體存儲等。
①磁存儲:利用磁的南北極特性,對磁性記錄設(shè)備進行磁化(南極、北極)從而保存二進制數(shù)據(jù)。
②光存儲:利用光的反射原理,利用激光在光盤上融化形成凹凸反射界面,利用有無反射或反射角的區(qū)別來達到二進制數(shù)據(jù)的存儲目的。
③半導(dǎo)體存儲:利用半導(dǎo)體的特性,利用電流對半導(dǎo)體結(jié)進行熔斷或不熔斷,達到二進制數(shù)據(jù)的存儲。
4.數(shù)據(jù)傳輸中出現(xiàn)的錯誤容易糾正
因為二進制只有兩個符號,“0”和“1”,當發(fā)現(xiàn)一組二進制碼中的某位符號錯了,只要取相反值就得到正確的值。十進制不太容易,如果某位符號錯了,還有9種可能。
- Python快樂編程:人工智能深度學(xué)習(xí)基礎(chǔ)
- JavaScript 網(wǎng)頁編程從入門到精通 (清華社"視頻大講堂"大系·網(wǎng)絡(luò)開發(fā)視頻大講堂)
- Vue.js快速入門與深入實戰(zhàn)
- Mastering Python Scripting for System Administrators
- 數(shù)據(jù)結(jié)構(gòu)(Python語言描述)(第2版)
- HTML5游戲開發(fā)案例教程
- JavaScript前端開發(fā)與實例教程(微課視頻版)
- Easy Web Development with WaveMaker
- Troubleshooting PostgreSQL
- JavaScript by Example
- Fast Data Processing with Spark(Second Edition)
- HTML+CSS+JavaScript網(wǎng)頁設(shè)計從入門到精通 (清華社"視頻大講堂"大系·網(wǎng)絡(luò)開發(fā)視頻大講堂)
- NGUI for Unity
- Julia High Performance(Second Edition)
- HTML5 Canvas核心技術(shù):圖形、動畫與游戲開發(fā)