




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
程序設(shè)計(jì)基礎(chǔ)——C語(yǔ)言程序設(shè)計(jì)
2023翻轉(zhuǎn)課堂實(shí)用教程第1章什么是編程語(yǔ)言1.1二進(jìn)制、八進(jìn)制和十六進(jìn)制1.2數(shù)據(jù)在內(nèi)存中怎樣存儲(chǔ)1.3計(jì)算機(jī)的編碼問(wèn)題1.4數(shù)據(jù)、內(nèi)存和程序的關(guān)系1.51.1什么是編程語(yǔ)言人與計(jì)算機(jī)怎樣交流?人與人之間通過(guò)“自然語(yǔ)言”交流人與計(jì)算機(jī)之間怎么交流?編程語(yǔ)言常用編程語(yǔ)言及主要用途編程語(yǔ)言主要用途C/C++C/C++主要用于PC軟件開發(fā)、Linux開發(fā)、游戲開發(fā)、單片機(jī)和嵌入式系統(tǒng)Java用于網(wǎng)站后臺(tái)開發(fā)、Android
開發(fā)、PC軟件開發(fā),近年來(lái)又涉足了大數(shù)據(jù)領(lǐng)域(歸功于Hadoop框架的流行)C#用于Windows平臺(tái)的軟件開發(fā),以及少量的網(wǎng)站后臺(tái)開發(fā)。Python用于系統(tǒng)運(yùn)維、網(wǎng)站后臺(tái)開發(fā)、數(shù)據(jù)分析、人工智能、云計(jì)算等領(lǐng)域PHPPHP主要用來(lái)開發(fā)網(wǎng)站后臺(tái)程序。JavaScript最初只能用于網(wǎng)站前端開發(fā),近年來(lái)由于Node.js的流行,JavaScript在網(wǎng)站后臺(tái)開發(fā)中也占有了一席之地Go語(yǔ)言主要用于服務(wù)器端的編程,對(duì)C/C++、Java都形成了不小的挑戰(zhàn)。Objective-C和SwiftObjective-C和Swift都只能用于蘋果產(chǎn)品的開發(fā),包括Mac、MacBook、iPhone、iPad、iWatch等匯編語(yǔ)言在對(duì)效率和實(shí)時(shí)性要求極高的關(guān)鍵模塊才會(huì)考慮匯編語(yǔ)言,例如操作系統(tǒng)內(nèi)核、驅(qū)動(dòng)、儀器儀表、工業(yè)控制等C語(yǔ)言什么樣子?1C語(yǔ)言的格式和詞匯(語(yǔ)法、語(yǔ)義)養(yǎng)成編程思維2例子1-1-1,代碼如下:/*在屏幕上顯示“我愛編程”*/#include<stdio.h>intmain(){printf(“我愛編程\n”);return0;}例子1-1-1,運(yùn)行結(jié)果:我愛編程1.2二進(jìn)制、八進(jìn)制和十六進(jìn)制八進(jìn)制數(shù)一位八進(jìn)制數(shù)可以表示三位二進(jìn)制數(shù)23=8一位十六進(jìn)制數(shù)可以表示四位二進(jìn)制數(shù)24=16十六進(jìn)制為什么使用八進(jìn)制和十六進(jìn)制?方便、簡(jiǎn)單二進(jìn)制數(shù)001111111111111111八進(jìn)制177777二進(jìn)制數(shù)1111111111111111十六進(jìn)制FFFF1.2.1二進(jìn)制PK逢2進(jìn)1二進(jìn)制加法借1當(dāng)2二進(jìn)制減法0111100
-=011
-=1101100101
-=011
-=0110111111000-1不夠減,向高位借1,當(dāng)作2使用,2-1為1被低位借走1后,當(dāng)前位就不夠減了,還得再向高位借1,當(dāng)作2使用,1+2-1-1為1被低位借走1后,當(dāng)前位剩下0,0-0為0當(dāng)前位本來(lái)就不夠減,還被低位借走1,所以得向高位借1,借到之后當(dāng)作2使用,2-1-1為01.2.2八進(jìn)制PK逢8進(jìn)1八進(jìn)制加法借1當(dāng)8八進(jìn)制減法1.2.3十六進(jìn)制PK逢16進(jìn)1十六進(jìn)制加法借1當(dāng)16十六進(jìn)制減法1.3數(shù)據(jù)在內(nèi)存中怎樣存儲(chǔ)位和字節(jié)8個(gè)元器件看做一個(gè)存儲(chǔ)單位,例如1,用00000001表示1個(gè)元器件稱為1比特(Bit)或1位8個(gè)元器件稱為1字節(jié)(Byte)單位換算:1Byte=8Bit8×1024個(gè)元器件就是1024Byte,簡(jiǎn)寫為1KB1KB=1024Byte=210Byte1MB=1024KB=220Byte1GB=1024MB=230Byte1TB=1024GB=240Byte1PB=1024TB=250Byte1EB=1024PB=260Byte22=4,23=8,24=16,25=32,26=64,27=128,28=256存儲(chǔ)單位數(shù)據(jù)的存儲(chǔ)一個(gè)元器件有2種狀態(tài),0或者1內(nèi)存條是一個(gè)非常精密的部件,包含了上億個(gè)電子元器件8個(gè)元器件有28=256種不同的組合16個(gè)元器件有216=65536種不同的組合1.4數(shù)據(jù)、內(nèi)存和程序的關(guān)系數(shù)據(jù)和內(nèi)存的關(guān)系從硬盤->內(nèi)存由CPU處理數(shù)據(jù)調(diào)用過(guò)程存在內(nèi)存,斷電消失存在硬盤,永久保存數(shù)據(jù)存儲(chǔ)想一下打開word應(yīng)用程序之后,數(shù)據(jù)的調(diào)用和存儲(chǔ)是怎樣的?什么是虛擬內(nèi)存?如果內(nèi)存小,一部分?jǐn)?shù)據(jù)就要放回硬盤,用時(shí)在調(diào)入內(nèi)存硬盤的讀寫速度比內(nèi)存慢很多,反復(fù)交換數(shù)據(jù)會(huì)消耗很多時(shí)間虛擬內(nèi)存買大內(nèi)存,一般4G以上1.5計(jì)算機(jī)的編碼問(wèn)題1.5.1ASCII編碼-英文的字符集怎樣將文字與二進(jìn)制對(duì)應(yīng)起來(lái)呢?字符集(CharacterSet)或者字符編碼(CharacterEncoding)字符集為每個(gè)字符分配一個(gè)唯一的編號(hào),類似于學(xué)生的學(xué)號(hào),通過(guò)編號(hào)就能夠找到對(duì)應(yīng)的字符。ASCII是“AmericanStandardCodeforInformationInterchange”的縮寫,中文是“美國(guó)信息交換標(biāo)準(zhǔn)代碼”1.5.2GB2312編碼和GBK編碼對(duì)于中國(guó)的字符,使用兩個(gè)字節(jié)存儲(chǔ),并且規(guī)定每個(gè)字節(jié)的最高位都是11、GB2312和GBK的編碼中文版Windows都將GBK作為默認(rèn)的中文編碼方案2、GBK編碼為了容納更多的字符,并且要區(qū)分兩個(gè)字節(jié)和四個(gè)字節(jié)3、GB18030編碼GB2312-->GBK-->GB18030是中文編碼的三套方案例如:字母和漢字在內(nèi)存中存儲(chǔ)的區(qū)別(1)對(duì)于字母A,它在內(nèi)存中存儲(chǔ)為
01000001;(2)對(duì)于漢字中,它在內(nèi)存中存儲(chǔ)為
11010110
11010000。用記事本程序創(chuàng)建一個(gè)txt文檔、在cmd或者控制臺(tái)程序(最常見的C語(yǔ)言程序)中顯示漢字、用VisualStudio創(chuàng)建的源文件等,使用的都是GBK編碼。例如:對(duì)于常用的中文字符,使用兩個(gè)字節(jié)存儲(chǔ),并且規(guī)定第一個(gè)字節(jié)的最高位是1,第二個(gè)字節(jié)的高位最多只能有一個(gè)連續(xù)的0(第二個(gè)字節(jié)的最高位可以是1也可以是0,但是當(dāng)它是0時(shí),次高位就不能是0了)對(duì)于罕見的字符,使用四個(gè)字節(jié)存儲(chǔ),并且規(guī)定第一個(gè)和第三個(gè)字節(jié)的最高位是1,第二個(gè)和第四個(gè)字節(jié)的高位必須有兩個(gè)連續(xù)的0。3、GB18030編碼例如字母A的藏文存儲(chǔ)對(duì)于藏文,A在內(nèi)存中的存儲(chǔ)為
10000001
00110010
11101111
00110000怎么判斷占用了幾個(gè)字節(jié)呢?字符處理軟件在處理文本時(shí),從左往右依次掃描每個(gè)字節(jié):如果遇到的字節(jié)的最高位是0,那么就會(huì)斷定該字符只占用了一個(gè)字節(jié);如果遇到的字節(jié)的最高位是1,那么該字符可能占用了兩個(gè)字節(jié),也可能占用了四個(gè)字節(jié),所以還要繼續(xù)往后掃描才能確定;如果第二個(gè)字節(jié)的高位有兩個(gè)連續(xù)的0,那么就會(huì)斷定該字符占用了四個(gè)字節(jié);如果第二個(gè)字節(jié)的高位沒(méi)有連續(xù)的0,那么就會(huì)斷定該字符占用了兩個(gè)字節(jié)。當(dāng)字符占用兩個(gè)或者四個(gè)字節(jié)時(shí),GB18030編碼要檢測(cè)兩次,處理效率比GB2312和GBK都低1.5.3Unicode字符集一種變長(zhǎng)的編碼方案,使用1~6個(gè)字節(jié)來(lái)存儲(chǔ)1、UTF-8一種固定長(zhǎng)度的編碼方案,不管字符編號(hào)大小,始終使用4個(gè)字節(jié)來(lái)存儲(chǔ)2、UTF-32介于UTF-8和UTF-32之間,使用2個(gè)或者4個(gè)字節(jié)來(lái)存儲(chǔ),長(zhǎng)度既固定又可變3、UTF-16Unicode也稱為統(tǒng)一碼、萬(wàn)國(guó)碼,是能統(tǒng)一所有國(guó)家的字符編碼,定義了全球文字的唯一編號(hào)。需要UTF-8、UTF-16、UTF-32這幾種編碼方案將Unicode存儲(chǔ)到計(jì)算機(jī)中UTF是UnicodeTransformationFormat的縮寫,意思是“Unicode轉(zhuǎn)換格式”1.UTF-8的編碼規(guī)則是:(1)如果只有一個(gè)字節(jié),那么最高的比特位為0,這樣可以兼容ASCII;(2)如果有多個(gè)字節(jié),那么第一個(gè)字節(jié)從最高位開始,連續(xù)有幾個(gè)比特位的值為1,就使用幾個(gè)字節(jié)編碼,剩下的字節(jié)均以10開頭。具體的表現(xiàn)形式為:(1)0xxxxxxx:?jiǎn)巫止?jié)編碼形式,這和ASCII編碼完全一樣,因此UTF-8是兼容ASCII的;(2)110xxxxx10xxxxxx:雙字節(jié)編碼形式(第一個(gè)字節(jié)有兩個(gè)連續(xù)的1);(3)1110xxxx10xxxxxx10xxxxxx:三字節(jié)編碼形式(第一個(gè)字節(jié)有三個(gè)連續(xù)的1);(4)11110xxx10xxxxxx10xxxxxx10xxxxxx:四字節(jié)編碼形式(第一個(gè)字節(jié)有四個(gè)連續(xù)的1)。xxx就用來(lái)存儲(chǔ)Unicode中的字符編號(hào)1.5.3Unicode字符集2.UTF-32UTF-32是固定長(zhǎng)度的編碼,始終占用4個(gè)字節(jié),足以容納所有的Unicode字符,所以直接存儲(chǔ)Unicode編號(hào)即可,不需要任何編碼轉(zhuǎn)換。浪費(fèi)了空間,提高了效率。3.UTF-16UFT-16使用2個(gè)或者4個(gè)字節(jié)來(lái)存儲(chǔ)。對(duì)于Unicode編號(hào)范圍在0~FFFF之間的字符,UTF-16使用兩個(gè)字節(jié)存儲(chǔ),并且直接存儲(chǔ)Unicode編號(hào),不用進(jìn)行編碼轉(zhuǎn)換。對(duì)于Unicode編號(hào)范圍在10000~10FFFF之間的字符,UTF-16使用四個(gè)字節(jié)存儲(chǔ),具體來(lái)說(shuō)就是:將字符編號(hào)的所有比特位分成兩部分,較高的一些比特位用一個(gè)值介于D800~DBFF之間的雙字節(jié)存儲(chǔ),較低的一些比特位(剩下的比特位)用一個(gè)值介于DC00~DFFF之間的雙字節(jié)存儲(chǔ)。4.Unicode編碼方案的比較只有UTF-8兼容ASCII,UTF-32和UTF-16都不兼容ASCII(1)
優(yōu)點(diǎn):UTF-8使用盡量少的字節(jié)來(lái)存儲(chǔ)字符,節(jié)省存儲(chǔ)空間,省流量。
缺點(diǎn):效率低,不但在存儲(chǔ)和讀取時(shí)都要經(jīng)過(guò)轉(zhuǎn)換,而且在處理字符串時(shí)也非常麻煩。字符定位(2)優(yōu)點(diǎn):UTF-32效率高缺點(diǎn):占用存儲(chǔ)空間,網(wǎng)絡(luò)傳輸時(shí)消耗流量多(3)優(yōu)點(diǎn):UTF-16平衡了存儲(chǔ)空間和處理效率的矛盾啟示:從Unicode字符集想到的(1)無(wú)論國(guó)家還是個(gè)人只有遵守統(tǒng)一的規(guī)則,才能有序地交流和發(fā)展;(2)做事情都要在遵守基本規(guī)則的基礎(chǔ)上,進(jìn)行創(chuàng)新和發(fā)展;(3)字符編碼是非常嚴(yán)謹(jǐn)?shù)墓ぷ鳎稽c(diǎn)差錯(cuò)會(huì)導(dǎo)致嚴(yán)重的后果,因此,我們做事要具有工匠精神,精益求精。1.5.4課堂練習(xí)題已知大寫字母A的ASCII碼是65,小寫字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量'\101'是______。字符A B)字符a C)字符e D)非法的常量2.設(shè)有說(shuō)明語(yǔ)句:chara='\72';則變量a
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大班穿鞋選擇性安全
- 杭州電子科技大學(xué)信息工程學(xué)院《交直流調(diào)速控制系統(tǒng)》2023-2024學(xué)年第二學(xué)期期末試卷
- 防疫知識(shí)安全教育主題班會(huì)
- 湖北工程學(xué)院《環(huán)境影響評(píng)價(jià)》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江工業(yè)大學(xué)《形體訓(xùn)練與舞蹈編導(dǎo)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年廣東省名校高三第二次月考試題含解析
- 長(zhǎng)安大學(xué)興華學(xué)院《中間體化學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京師范大學(xué)珠海分?!堵樽碓O(shè)備學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 重酒石酸利斯的明口服溶液-藥品臨床應(yīng)用解讀
- 昆玉職業(yè)技術(shù)學(xué)院《湘西特色舞蹈》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024年常德職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)
- 干細(xì)胞治療護(hù)理
- 幼小銜接數(shù)學(xué)練習(xí)題-30套幼小銜接知識(shí)訓(xùn)練
- 招聘與錄用(第3版)課件全套 王麗娟 第1-8章 概述、招聘前的理論準(zhǔn)備工作 -錄用與招聘評(píng)估
- 《中國(guó)鐵路北京局集團(tuán)有限公司營(yíng)業(yè)線施工管理實(shí)施細(xì)則》
- 故障診斷技術(shù)的國(guó)內(nèi)外發(fā)展現(xiàn)狀
- 贛美版小學(xué)六年級(jí)上冊(cè)美術(shù)教案(全冊(cè))
- 超長(zhǎng)期特別國(guó)債項(xiàng)目
- 2012年衛(wèi)輝市招聘教師筆試面試成績(jī)花名冊(cè)
- DL∕T 5210.4-2018 電力建設(shè)施工質(zhì)量驗(yàn)收規(guī)程 第4部分:熱工儀表及控制裝置
- 大學(xué)與青年發(fā)展智慧樹知到期末考試答案章節(jié)答案2024年華僑大學(xué)
評(píng)論
0/150
提交評(píng)論