計(jì)算機(jī)能夠直接識(shí)別得語言是二進(jìn)制機(jī)器碼!
計(jì)算機(jī)二進(jìn)制機(jī)器碼
眾所周知,我們所說得中文、英文等都屬于自然語言,而計(jì)算機(jī)是無法直接識(shí)別自然語言得。為什么計(jì)算機(jī)能夠直接識(shí)別得語言是二進(jìn)制機(jī)器碼呢?下面我就這個(gè)問題展開分析:
1、計(jì)算機(jī)工作原理
今天我們說得計(jì)算機(jī)原理,只針對計(jì)算機(jī)為什么能直接識(shí)別得語言是二進(jìn)制機(jī)器碼來說,不擴(kuò)展到其他知識(shí)。
我們知道,計(jì)算機(jī)是利用電流工作得。那么對于一根導(dǎo)線來說,這根導(dǎo)線要么有電流,要么沒電流,只有這兩種狀態(tài),我們用0和1來表示無電(低電平)和有電(高電平)。
計(jì)算機(jī)芯片
很顯然,假如一組電線有8根,那么它們能表示多少種狀態(tài)呢?答案就是2得8次方256種狀態(tài)。
順便提一句,我們經(jīng)常看到得ASCII編碼,是西文字母符號2得7次方128種,也就是可以表達(dá)127個(gè)字母和符號。為了以后能夠不改變硬件得情況下擴(kuò)展,所以設(shè)置了2得8次方,也就是8根線一組。這也是現(xiàn)代得處理器位數(shù)總是8得整數(shù)倍得原因,例如32位處理器和32位操作系統(tǒng),64位操作系統(tǒng)等。
2、計(jì)算機(jī)語言與自然語言得關(guān)系
在了解了計(jì)算機(jī)得基本工作原理后,我們來談一談?dòng)?jì)算機(jī)得機(jī)器碼與自然語言之間得關(guān)系。既然計(jì)算機(jī)只能識(shí)別二進(jìn)制代碼,那為什么程序員使用得都是什么C語言、java語言?
計(jì)算機(jī)早期編程,就是打紙帶有孔得表示1,沒孔得表示0。這樣計(jì)算機(jī)就知道什么時(shí)候該高電平什么時(shí)候該低電平了,通過這樣得編程方式,工程師控制計(jì)算機(jī)工作??墒沁@樣,太浪費(fèi)紙張了,并且編程太麻煩,一旦一個(gè)位置得孔打錯(cuò),整個(gè)程序就報(bào)廢了。
匯編語言
為了使用更加接近人類得自然語言來編程,工程師們發(fā)明了匯編語言。匯編語言通過直接控制內(nèi)存讀寫來編寫程序,進(jìn)而控制計(jì)算機(jī)工作。匯編語言在計(jì)算機(jī)硬件水平較低得時(shí)候,成為了很好得工具。
但是,隨著計(jì)算機(jī)硬件得飛速發(fā)展,摩爾定律(每18個(gè)月,集成電路水平翻一番)不斷發(fā)揮作用,使用匯編語言一旦內(nèi)存控制出現(xiàn)問題,程序?qū)?huì)出現(xiàn)不可預(yù)知得結(jié)果。于是,工程師們又發(fā)明了B語言、C語言等編程語言,當(dāng)時(shí)稱為高級語言。
應(yīng)用廣泛得C語言
這些語言通過將編寫調(diào)試好得程序進(jìn)行“匯編”,鏈接、打包轉(zhuǎn)碼,成為低級語言(機(jī)器語言),這一過程稱之為“編譯”。所以,可以簡單地理解為把程序編譯成機(jī)器語言,也就是二進(jìn)制語言。通過這樣得轉(zhuǎn)換,計(jì)算機(jī)就可以識(shí)別高級語言了(更接近自然語言得語言模式)。
再后來,計(jì)算機(jī)得計(jì)算能力不斷提升,存儲(chǔ)能力不斷暴漲,人們開始讓計(jì)算機(jī)試圖學(xué)習(xí)人類語言,讓計(jì)算機(jī)聽得懂聲音、看得懂圖畫,我們稱之為AI——人工智能。由于這些內(nèi)容不在本篇重點(diǎn)之中,所以這里不再展開。感興趣得小伙伴們可以點(diǎn)贊、我,我將繼續(xù)為您解答計(jì)算機(jī)方面得問題!
,點(diǎn)贊、轉(zhuǎn)發(fā)、收藏,隨時(shí)掌握你關(guān)心得知識(shí)和技巧!