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