學習C語言的必備基礎知識_第1頁
學習C語言的必備基礎知識_第2頁
學習C語言的必備基礎知識_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

學習C語言的必備基礎知識閱讀人數:10766人頁數:5頁價值:0下載券夏杰愛錢東平第一章計算機和數據的存儲第一節了解計算機很奇怪的一件事,現在的C語言教材,一上來就是變量,表達式,一點也不提計算機原理方面的事,把C語言當作語言,數學來學,只是生硬的列出一些語法規則,學生們難以理解,只好死記硬背,沒有把握住本質的東西,也就無法隨心所欲,其實C語言是一門非常好學的語言,核心的語法規則是非常少的,而且都是和計算機息息相關,所以必須要學習好計算機的一些基礎,掌握好計算機的基礎知識對學習C語言至關重要,對將來其它語言的編程都極其有益,C語言還有一個優點,就是寫法非常簡潔明了,和c++,java,C#,javascript等語言有著非常相似的書寫方式,所以學好C語言,可以輕松的過渡到大量其它編程語言。講完C以后,將陸續推出java,C#,C++,javascript,ruby,python等,不過都是在此教程的基礎之上進行,所以C語言乃基礎之基礎,想要學編程,強烈建議從C語言開始。下面開始了解計算機。按照馮諾依曼的理論,計算機含有5個部分,運算器、控制器、存儲器、輸入和輸出設備。現在我們通常把運算器、控制器和在一起,稱為CPU(中央處理器),存儲器就是我們說的內存和硬盤,輸入設備就是鼠標,鍵盤等,輸出設備主要是顯示器、打印機、繪圖儀等。其中CPU和內存最關鍵,CPU是執行指令的部件,內存是一些連續的存儲單元,用來存儲指令和數據,每個單元可以存8位二進制數,也稱為1個字節,計算機里存儲器都是以字節為單位的,在描述網絡速度的時候通常以位為單位,大家注意區別。CPU要執行的指令就存在內存里,CPU按照指定順序連續地執行內存中的指令,這就是馮諾依曼體系的基本工作原理。什么是指令,就是一些二進制的數,比如10010001是一條加法指令,10011011是一條存儲指令,CPU遇見不同的指令就會完成不同的操作,CPU能夠執行的指令是生產廠家生產時就設計好的,比如8086基本指令有70條,那么CPU就只認識這70條指令,CPU在不斷升級,除了運行速度加快還會增加一些新的指令,CPU的指令分三大類:傳送,計算,跳轉,其實我們的編程語言也就能完成這些功能。其中傳送主要是管理存儲器,管理數據如何存儲,是最重要的,計算比較簡單,主要是數學計算,跳轉讓計算機有了智能。什么是數據,數據可以是要計算的數字,也可以是一篇文章,一幅畫,一首歌,這些東西必須先存到內存里,才能讓CPU傳送到顯卡,聲卡,我們才能聽見看見。在內存里指令和數據是分開存放的,我們在編寫程序時用到的內存通常是指存儲數據用的數據區,在一條指令里,往往也分操作碼和操作數,1/5頁操作數也是一種數據,只不過它是指令的一部分,存儲在指令區,這種數據稱為操作數,以后也會用到。什么是程序,程序就是由一批指令和數據組合在一起構成的二進制數據集。但如果要用二進制來寫程序,那估計肯定有人罵街了,我們通常用能看懂的字母和阿拉伯數字來寫程序,第一種被發明的編程語言叫匯編語言,它給每個二進制指令都給起了一個英文名字,叫做助記碼,我們用助記碼寫起程序來要好看多了,但是CPU是看不懂的,我們必須把它重新翻譯回二進制的才行,我們管這個叫編譯,這個工作起初是手工完成的,后來有人發明了軟件可以自動翻譯,就出現了編譯器,用匯編語言寫程序比起用二進制進步了一大步,可效率還是很低,于是新的語言--高級語言出現了,據說是先有了A語言,又有了B語言,最后出現了C語言,由于其優秀的品質,PK掉了同時代的眾多語言,直到現在還廣為流傳。有些人還有些迷惑,三大件之一的硬盤怎么還沒出場,其實已經出場了,我們寫好的源程序都要存儲到硬盤上,編譯好的可執行程序也要存儲到硬盤上,內存是RAM,掉電就內容沒有了,與之對應的是ROM,永久保存,存儲器還有另一種分類方法:隨機存儲和線性存儲,隨機存儲就是我們在訪問的時候沒有搜索的過程,只要說出地址,立即訪問,線性存儲有一個查找的過程,告訴哪個柱面,扇區,磁道,通過電機旋轉找到后才能訪問數據,CPU只能訪問隨機存儲器,所以內存必須是隨機存儲器,光盤,硬盤都屬于線性存儲,只能用來做外部存儲器,現在比較流行的閃盤屬于隨機存儲器,可它還是ROM,既可以當內存,也可以當外存。硬盤上保存的有一個非常重要的程序,叫做操作系統,其實,操作系統是由眾多的程序文件和數據文件組成的,沒有操作系統我們是很難與電腦溝通的,操作系統負責管理整個內存,把系統需要執行的程序加載到內存里并執行,這就是機器啟動的過程,用鼠標雙擊一個可執行程序,操作系統就會到硬盤將其取出,加載到內存,這就是程序加載過程,我們上邊說的程序就是這樣被加載到內存中,才能由CPU來執行,除了管理內存,操作系統還監視著每個程序的執行情況,出現異常情況結束程序,如果內存不夠了,操作系統會先把一部分內存里的東西搬到硬盤上,等用的時候再搬回來,硬盤上的這塊地方被稱為虛擬內存,使用虛擬內存來回移動數據本來就浪費時間,再加上硬盤的讀取速度較慢,所以就機器就顯得很慢,加大物理內存,少使用虛擬內存對計算機的性能有很大的提高。除此之外,操作系統的另一項重要功能就是硬25頁盤上文件的管理,不同的操作系統對硬盤進行管理的方式都不一樣,這個管理方式叫做文件系統,按道理說一臺Linux的機器,掛了一塊Windows系統下使用的硬盤,是無法對它進行讀取,但是已經有人開發了Linux下訪問Windows文件系統的軟件,因此可以識別,并進行讀取,但是反過來就不行了,除非有人開發了相應的軟件才可以。總結:1.計算機的核心部件:CPU和內存2.CPU執行指令,內存中存儲二進制的指令和數據3.可執行程序由指令和數據構成,寫程序時使用高級語言,經過編譯,連接后生成可執行的程序。4.線性存儲與隨機存儲,ROM和RAM,硬盤,操作系統第二節數據的存儲計算機最擅長的就是存儲,存儲也是計算機的靈魂,所以這本教程是緊緊圍繞著存儲來展開的,理解并掌握了存儲,你基本上就懂了如何編寫程序,我們剛才講到了內存里可以存儲數據,那么我們都能存儲什么樣的數據?又是如何來存儲的呢?1.數的存儲這里說的數就是我們計算中用到的表示大小的數,我們習慣以十進制表示,計算機只能存儲二進制數,我們把它轉換成相應的二進制數來存儲就可以了。例如25411111110通常寫做FE500000101051)進制轉換:1.n進制a十進制方法:下面這個等式大家估計都能看的懂。3679=3*103+6*102+7*101+9*100這是十進制數的計算方法,對于n進制的數,把10換成n就可以了,所以記住這個等式,任何進制轉10進制都會了。如:10011001是二進制數轉化成10進制就是1*27+0+0+1*24+1*23+0+0+1*20=128+16+8+1=1532.十進制轉n進制方法:像剛才一樣,想想10進制數怎么找出每一位的值,3679/10余數9商367最低位9367/10余數7商36上一位736/10余數6商3上一位63/10余數3商0上一位3用要轉換的數除以10,余數就是的最低位數,然后用商接著除10,得到余數就是上一位,一直除下去,直到商為0結束。容易出錯的地方:用260除以16的時候另外列個算式,兩個算式很像,不小心容易搞混。3.十六進制,二進制相互轉換方法:十六進制->二進制1位變4位,不夠4位,前邊補零如:104->000100000100二進制->十六進制4位變1位,如:1011100>5c注意:電腦里用的都是二進制,但我們總是看到很多十六進制的數,為什么呢,原因:二進制,十六進制轉換方便,口算即可,十六進制書寫起來,看起來都要比二進制方便很多,因此,在需要使用二進制的地方通常用十六進制代替。注意:35頁任何存儲都以字節為單位,每個字節能存2位十六進制數。所以我們經常看到是兩位16進制數。2)多字節存儲一個字節只能存儲8位2進制數,最大只能存255,那么要存更大的數怎么辦,我們可以使用多個單元來存一個數,連起來就能構成一個大數,我們通常把低位存在最右邊,然后依次存儲高位,內存是連續的,只有前后,沒有左右,一個數由多個字節組成的話,一定要明確高位低位的順序,低位在前,高位在后。這個很關鍵,要記住。比如258寫成16進制就是0102,每個字節可以存兩位16進制,現在需要兩個字節,存儲的時候02在前,01在后,更多字節,依次類推。3)符號數存儲數字有正負之分,當存儲一個有符號的數時,通常用最高位代表符號位,1代表負數,0代表正數。計算機中所有帶符號數都以補碼形式存儲。補碼定義:正數的補碼是其本身負數的補碼符號位不變,其余位取反加1如果大存儲空間存一個小點的數,高位的字節也不能空著,正數我們可以在高位補0,不影響大小,負數我們必須在高位補1,才不影響大小。2.字符的存儲要存儲源程序,存儲一篇文章,存儲一串字母和數字,這都是字符的存儲,和數字不一樣,它不

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論