二進(jìn)制數(shù)及其他
0題記
本文引用地址:http://m.butianyuan.cn/article/187198.htm在學(xué)習(xí)計(jì)算機(jī)基礎(chǔ)或者是數(shù)字電子技術(shù)、微機(jī)原理、單片機(jī)、C 語言等課程的時(shí)候,都會講到一個(gè)概 念:二進(jìn)制數(shù)。就是這個(gè)二進(jìn)制數(shù)難倒了很多的英雄漢,上面羅列的這些課程我都教過,這些課程有一個(gè)共 同的知識點(diǎn)就是二進(jìn)制數(shù),十進(jìn)制數(shù),十六進(jìn)制數(shù),還有八進(jìn)制數(shù)以及他們的相互轉(zhuǎn)換,而對于電子類專業(yè) 的一門比較重要的課程--單片機(jī),更是要用到二進(jìn)制數(shù)和十六進(jìn)制數(shù)。故而每次我講課時(shí)都會盡量詳細(xì)的 給學(xué)生講解這些內(nèi)容。今天上午剛剛結(jié)束了兩個(gè)班的第一堂課,又勾起了我的回憶,讓我有一種把這部分知 識點(diǎn)寫下來的沖動,給那些剛剛開始學(xué)習(xí)數(shù)字電子技術(shù)、單片機(jī)、C 語言的學(xué)生們。以上是為這篇文章的來歷。
1引子
隨著電的使用,電器應(yīng)用越來越廣泛,人們對于電器的要求也越來越高,要求功能強(qiáng)大,還要智能
化,使用簡單化,這些要求讓數(shù)字電子技術(shù)應(yīng)用范圍越來越廣泛,原先很多采用模擬電路的地方都被數(shù)字電 路取代了,特別是對于信號處理方面,隨著計(jì)算機(jī)科學(xué)與技術(shù)突飛猛進(jìn)地發(fā)展,用數(shù)字電路進(jìn)行信號處理的 優(yōu)勢也更加突出。信號處理的一般方法都是先將模擬信號按比例轉(zhuǎn)換成數(shù)字信號,然后送到數(shù)字電路進(jìn)行處 理,最后再將處理結(jié)果根據(jù)需要轉(zhuǎn)換為相應(yīng)的模擬信號輸出。從一般的模擬信號到數(shù)字信號,要經(jīng)過采樣、 量化、編碼,最終一個(gè)連續(xù)的模擬信號波形就變成了一串離散的、只有高低電平之分“0 1 0 1...”變化的數(shù) 字信號。自然界來的,或者通過傳感器轉(zhuǎn)化的主要是模擬信號,那么為什么要多此一舉把它們變?yōu)閿?shù)字信號 呢?原因有以下幾點(diǎn):
一、模擬信號有無窮多種可能的波形,同一個(gè)波形稍微變化就成了另一種波形,而數(shù)字信號只有兩種波 形(高電平和低電平),這就為信號的接收與處理提供了方便。即,數(shù)字信號易于傳輸,抗干擾能力強(qiáng)。
二、模擬信號由于它的多變性極容易受到干擾,其中包括來自信道的和電子器件的干擾,模擬器件難以 保證高的精度(如放大器有飽和失真、截止失真、交越失真,集成電路難免有零點(diǎn)漂移)。而數(shù)字電路中有 限的波形種類保證了它具有極強(qiáng)的抗干擾性,受擾動的波形只要不超過一定門限總能夠通過一些整形電路
(如斯密特門)恢復(fù)出來,從而保證了極高的準(zhǔn)確性和可信性,而且基于門電路、集成芯片所組成的數(shù)字電 路也簡單可*、維護(hù)調(diào)度方便,很適合于信息的處理。特別是計(jì)算機(jī)科學(xué)技術(shù)發(fā)展后,很多模擬電路無法實(shí) 現(xiàn)的功能都可以在采用數(shù)字電路來實(shí)現(xiàn)。
而電子計(jì)算機(jī)的出現(xiàn),讓數(shù)字電子技術(shù)有了更廣闊的發(fā)展空間,也讓我們的生活更加的豐富。手機(jī)帶 給我們聯(lián)絡(luò)的方便,電腦帶給我們工作和娛樂以及學(xué)習(xí)的便利,天上的飛機(jī),路上的汽車,讓我們出行更加 方便,家中的空調(diào)冰箱洗衣機(jī)微波爐等讓我們生活更加舒適。在手機(jī)、電腦、飛機(jī)、汽車以及家電中都有一 塊或者多塊的微處理器在工作,而這些微處理器就是由數(shù)字電路構(gòu)成的。
2 0 和 1 的舞蹈
2.1 二進(jìn)制數(shù)的來歷
電,發(fā)明出來是為人類服務(wù)的,那么電路同樣的是為人們服務(wù)的,也就是說我們需要在電路中能夠幫 助我們做平時(shí)生活中的事情,這些事情應(yīng)該是我們不用電也可以來做的。舉個(gè)例子,譬如我們生活中的數(shù), 我們采用的是十進(jìn)制數(shù),今年是 2010 年,就是指從耶穌誕生之年到現(xiàn)在有 2010 年了,班上有 45 個(gè)人, 買了一條褲子花費(fèi) 368 元等等,那么在這些數(shù)字的背后隱藏著什么呢?我們都知道 1+1=2,但是陳景潤花 費(fèi)了很大的功夫才證明,這說明即使我們看起來很平常的的事情也隱藏著一些我們不知道的因素,在這里我 們不是來討論 1+1=2 的,因?yàn)槲覀儾皇琼敇O的數(shù)學(xué)家,但關(guān)于十進(jìn)制數(shù),我們可以討論一下一些普通人都 有能力理解的東西。2010,45,368 這些數(shù)字給我們提供了 2 個(gè)信息,數(shù)碼和數(shù)位,2010 由三個(gè)數(shù)碼
0,1,2 構(gòu)成,45 由兩個(gè)數(shù)碼 4,5 構(gòu)成,368 由三個(gè)數(shù)碼 3,6,8 構(gòu)成,而且這些數(shù)碼的位置不一 樣,那么他們所代表的大小不一樣的,如圖 1:
圖中 10 就是基數(shù),而 103 、 102 、 101 、 100 也就是 1000,100,10,1 就是權(quán)。所謂的權(quán),就是在 這個(gè)數(shù)中占的數(shù)值大小。也就是說 2010 中的“2代表了 2 個(gè)“千”,45 中的”4代表了 4 個(gè)“十”,而 368 中 的”8“代表了 8 個(gè)“一”,而且同一個(gè)數(shù)碼放在不同的位置上就代表了不同數(shù)值,如 555 中,三個(gè) 5 的權(quán)分別
100,10,1,那么第一個(gè) 5 代表的數(shù)值就是 5X100,第二個(gè) 5 代表的數(shù)值是 5X10,的三個(gè) 5 代表的數(shù)
值是 5X 1。采用這種方法,我們就可以用有限的數(shù)碼來表示無限的數(shù)據(jù)了。
總結(jié)一下,十進(jìn)制采用了 0,1,2,3,4,5,6,7,8,9 共 10 個(gè)數(shù)碼,基數(shù)是 10,進(jìn)行運(yùn)算 的時(shí)候,我們采用逢十進(jìn)一。
這是我們現(xiàn)實(shí)生活中需要用到的十進(jìn)制的一些情況,那么我們在數(shù)字電路中必然也要采用這種計(jì)數(shù)方 法,電路中傳輸?shù)木褪请妷汉碗娏鳎覀円?10 種不同的狀態(tài)來表示這 10 個(gè)數(shù)碼有點(diǎn)困難。我們舉例來 說吧,譬如有一個(gè)電壓,0~5V ,那么我們就可以這樣來表示 0~9 這 10 個(gè)數(shù)碼,如表 1。
表 1 電壓和數(shù)碼之間的對應(yīng)關(guān)系
電壓 | 十進(jìn)制數(shù)碼 | 電壓 | 十進(jìn)制數(shù)碼 |
0V | 0 | 2.5V | 5 |
0.5V | 1 | 3V | 6 |
1V | 2 | 3.5V | 7 |
1.5V | 3 | 4V | 8 |
2V | 4 | 4.5V | 9 |
接下來就是要制造一個(gè)能夠精確的實(shí)現(xiàn) 0V,0.5V,1V,1.5V……4.5V 等各種電平的基本電路,但這一
件是非常困難的事情。兩個(gè)相鄰的電平只有 0.5V,電路受到干擾,電平偏移 0.5V,那么就變成另外一個(gè)數(shù) 據(jù)了,而要保證電平完全沒有漂移是不可能的,所以,十進(jìn)制數(shù)在電路中很難直接實(shí)現(xiàn)了。即使勉強(qiáng)實(shí)現(xiàn) 了,數(shù)據(jù)傳輸?shù)臅r(shí)候又遇到了更大的數(shù)據(jù)準(zhǔn)確性的問題,因?yàn)殡娖浇?jīng)過導(dǎo)線傳輸?shù)臅r(shí)候會變化,相鄰的兩個(gè) 電平很容易混淆。這種十進(jìn)制數(shù)在數(shù)字電路中是沒法直接實(shí)現(xiàn),更別說是在微處理器這種高頻電路中實(shí)現(xiàn) 了。這樣必然要另外想辦法了。而戈特弗里德·威廉·凡·萊布尼茨(Gottfried Wilhelm von Leibniz,1646
年 7 月 1 日~1716 年 11 月 14 日)在 18 世紀(jì)初提出的二進(jìn)制幫助人們解決了問題,雖然萊布尼茨受中 國的易經(jīng)八卦啟發(fā)而發(fā)明的二進(jìn)制數(shù)最初不是用來設(shè)計(jì)電路的,因?yàn)槟莻€(gè)時(shí)候人們才開始研究電的現(xiàn)象,電 燈,電池等都還沒有出現(xiàn)。但 20 世紀(jì)初人們制造出二極管、三極管、集成電路等的時(shí)候,卻把二進(jìn)制拿來 用于電路的設(shè)計(jì)。二進(jìn)制數(shù)因?yàn)橹挥袃蓚€(gè)數(shù) 0 和 1,狀態(tài)也只有兩種,在電路中實(shí)現(xiàn)起來就方便的多了,只 要一個(gè)高電平和低電平就可以,甚至說有電流和無電流、有電荷和無電荷都可以表示,這樣的話電路的實(shí)現(xiàn) 非常簡單,而且這種電路也不容易受到干擾,抗干擾性好的多。還是以上面 0~5V 的一個(gè)電平來說明,看圖2。
從圖 2 中可以看到,我們可以認(rèn)為 0~1V 都是低電平,2.4V~5V 都是高電平,若假設(shè)低電平代表 0,高電 平代表 1,那么我們就實(shí)現(xiàn)了二進(jìn)制數(shù)了,這個(gè)電路簡單,而且易與實(shí)現(xiàn),電平允許有一定的漂移,提高了 抗干擾能力,數(shù)據(jù)傳輸可*性高的多。所以數(shù)字電路中采用了二進(jìn)制數(shù)。
假若以高電平代表 1,低電平代表 0,則稱為正邏輯系統(tǒng),反之,以高電平代表 0,低電平代表 1,
則稱為負(fù)邏輯系統(tǒng),一般來說,我們采用正邏輯系統(tǒng)。
2.2 二進(jìn)制數(shù)與十進(jìn)制數(shù)
接下來我們就研究一下二進(jìn)制數(shù),注意了,下面我們純粹的研究二進(jìn)制數(shù),跟二進(jìn)制的數(shù)字電路實(shí)現(xiàn) 沒有任何的關(guān)系了。
借助于十進(jìn)制數(shù)的思路,我們的二進(jìn)制數(shù)有兩個(gè)數(shù)碼:0 和 1,基數(shù)是 2,進(jìn)行運(yùn)算的時(shí)候是逢二進(jìn) 一。舉例來說明,比如二進(jìn)制數(shù) 10110(注意,讀這個(gè)數(shù)據(jù)的時(shí)候只需要把每一位數(shù)據(jù)讀出來就可以了,
千萬不要采用十進(jìn)制數(shù)的讀法。即這個(gè)數(shù)讀作:一 零 一 一 零,而不是一萬零一百一 十,若按照十進(jìn)制數(shù)
的讀法,會讓別人笑話的。切記切記)。對于這個(gè)數(shù),我們知道它的每一位都有權(quán),而且權(quán)是 2 的冪,即
10110 = 1X24 0X23 1X22 1X21 0X20 若我們把這些數(shù)字相加計(jì)算出數(shù)值來,就會發(fā)現(xiàn)它是一個(gè) 十進(jìn)制數(shù) 22,這樣我們就把一個(gè)二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)了。我們接下來就講二進(jìn)制數(shù)和十進(jìn)制數(shù)的相互
轉(zhuǎn)換問題。
隨便拿出一本教材來,關(guān)于二進(jìn)制數(shù)和十進(jìn)制數(shù)的相互轉(zhuǎn)換,都講了一個(gè)方法:二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn) 制數(shù)采用加權(quán)法,就是上面說的例子。而十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)則分為整數(shù)部分和小數(shù)部分分別轉(zhuǎn)換,整 數(shù)部分用除 2 取余法,小數(shù)部分采用乘 2 取整法,然后要列豎式來求解。一般來說,我們在進(jìn)行應(yīng)用的時(shí) 候,譬如數(shù)字電路,單片機(jī)中使用的數(shù)字都是整數(shù),而且只需要我們快速的計(jì)算出這個(gè)數(shù)據(jù)即可,若按照除
相關(guān)推薦
技術(shù)專區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車電子
- 轉(zhuǎn)換器
- 電源管理
- 信號放大器
評論