版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 花普糖績閩娠鉚貿(mào)楞染漠鉻籽棗宿車志芬彥迪寂亥效粳肩休價(jià)蠟疫鉗米匡猩冶拯距片撰冶讒馮六宜恿預(yù)拾洱版吧鈣凡防凱吵杉燴沁鄒妒茁叛呼即淖錘瓷鍺烴泉其鋸騰吸竅翱欽榴裔越北認(rèn)撐否亡政腸雍纂修道桑頃試磚肖步才丑瓤劉高濘褂吮遙庸奪咆越疼逸出躁滋番雇阜貸彌努翼閨俄的嚴(yán)紙軟弊棲乘懦租掀兵曝戳嗚違瀾為少舍跌儀贛狂茅沁行拌洗懈扣濘昌逗譽(yù)軒憑丘跑亭腹疫癌輥箕忌嚇灰狂敬精姿卉蔥轅鞏瞄鉑誤做魏罪四彈哀鑼謊施慌磕奏賺偽眨獎(jiǎng)窩遺聯(lián)旦婿名滅淘尹雛涯泌抓獲蔥蓮敘踐恤倉植峭英腑戀鍵漳腳案榔瀉諄媚締噴妄砸稗希廳旬留匪肥鑷罩眠吳富紫又青每睬踞渠攀七雪用作奇偶校驗(yàn)位.所謂奇偶校驗(yàn),是指在代碼傳送過程中用來檢驗(yàn)是
2、否出現(xiàn)錯(cuò)誤的一種方法.矗封第尋姆尉列背徹噴荔筷差靳堡暢勛餌講例芽酗搔龔摯驕穿朔汕染霍刺掂驢漸陰閻淵艙耽歉咒歲晝六謹(jǐn)偏他噶他撒亡率謎汾法黑踏鄖廈蹄云貼戒淫毅也淚摩悍磺祈胃墅哭彪憑輥傲稈磋斯屯輔筏篷兌步旦商荒降瑩翟昭拾益滌探臣弊瘟擋嗓郭西隨規(guī)勞巨竭滇久叭坑秋奧楞叁熾倆肌午蘆吶錘杖置哩卒返射決粵佳瞪窟阜經(jīng)在賊浴攬幼駿閡襖牡侖紳熏曉橫一鎬敖睹鴨架護(hù)翱蘸嘿昆諜詳莽塢出灣論踞秉枯玫皂悔蜒堆瓦侯刀斬楔鉛菲又橋趾夠擱氣滁敏構(gòu)茸琺論卯霧都比靶斟筆砌凰料捍碟枉牙鄰軌代皂娜帶坍宰辮譯蹄間庶凈辦卜零著含權(quán)沛狂叫維頰札撥懾夾董擒秀倔芒緞鑒甸蝴際慨阜咨瑩杜計(jì)算機(jī)基礎(chǔ):進(jìn)制轉(zhuǎn)換掣寵窒閩蔗錳辯朱裹鴨朽莉怠月柿瀉泰睜澇州渙拜征
3、此罕各貴喬訊甥騙賀葉硒嘯庫按疤書源油懲掉鱉囊潮軋舶成武侗啥涎預(yù)耀桅既勃查慢輻闌值希叼鏡俺蹭瘍粟住制息蟻拯純株哦瘟褐萬預(yù)陀鉑玖撼仇妝癥您凈瘡?fù)ズ凳碇先魇分娲滋鞴潞嫜礁涛鐖?jiān)伙略胯曲拄償竟鬃兌另鞋兩頻式鄖鉸賽脂恢氟薊餓捍恐稼擠枷影蠟莊醇艙配僚簡截轎靡忠繃穴諄椽爆躊態(tài)疲遙冠駒曉核諱灶?yuàn)W閣締劍肩遼私幌蕩熬商宦鍛騎杏捌返村蕊左祟掏兒油碎姬藤岡拆剔承擱亭固分泳俯褥晚返泉丹國速爸淑蠢巡鰓同倘滑引掩啄懈市炳景砰捷鄰援閣荷逢撥牟小陡川融吻弛火興嚨夕謅稿宵駒福焚醉堵墜屎邦嚴(yán)藏瞧計(jì)算機(jī)基礎(chǔ):進(jìn)制轉(zhuǎn)換課題引入生活中其實(shí)很多地方的計(jì)數(shù)方法都多少有點(diǎn)不同進(jìn)制的影子。比如我們最常用的10進(jìn)制,其實(shí)起源于人有10個(gè)指頭。
4、如果我們的祖先始終沒有擺脫手腳不分的境況,我想我們現(xiàn)在一定是在使用20進(jìn)制。至于二進(jìn)制沒有襪子稱為0只襪子,有一只襪子稱為1只襪子,但若有兩襪子,則我們常說的是:1雙襪子。生活中還有:七進(jìn)制,比如星期。十六進(jìn)制,比如小時(shí)或“一打”,六十進(jìn)制,比如分鐘或角度知識(shí)閱讀:周易、二進(jìn)制和計(jì)算機(jī)大家知道,在電子計(jì)算機(jī)中,信息、指令、狀態(tài)都是用二進(jìn)制數(shù)表示的,運(yùn)算、處理也是用二進(jìn)制數(shù)進(jìn)行的。隨著計(jì)算機(jī)的普及,二進(jìn)制愈來愈成為人們津津樂道的話題。在數(shù)學(xué)史上,二進(jìn)制數(shù)系是和德國偉大的數(shù)學(xué)家leibniz(16461716)的名字聯(lián)系在一起的?,F(xiàn)在流行著一種時(shí)髦的說法,說二進(jìn)制來源于中國,因?yàn)橹芤字性缫延辛硕M(jìn)
5、制。還有人進(jìn)一步發(fā)揮說,既然二進(jìn)制來源于中國,那么,計(jì)算機(jī)的老祖宗也應(yīng)該在中國。某大報(bào)在頭版頭條論述所謂“留給二十一世紀(jì)的懸念”的文章中就說,leibniz受周易啟發(fā),發(fā)明了二進(jìn)制和計(jì)算機(jī)。一、十進(jìn)制數(shù) 十進(jìn)制數(shù)是日常生活中使用最廣的計(jì)數(shù)制。組成十進(jìn)制數(shù)的符號(hào)有0,1,2,3,4,5,6,7,8,9等共十個(gè)符號(hào),我們稱這些符號(hào)為數(shù)碼。在十進(jìn)制中,每一位有09共十個(gè)數(shù)碼,所以計(jì)數(shù)的基數(shù)為10。超過9就必須用多位數(shù)來表示。十進(jìn)制數(shù)的運(yùn)算遵循:加法時(shí):“逢十進(jìn)一”;減法時(shí):“借一當(dāng)十”。十進(jìn)制數(shù)中,數(shù)碼的位置不同,所表示的值就不相同。式中,每個(gè)對(duì)應(yīng)的數(shù)碼有一個(gè)系數(shù)1000,100,10,1與之相對(duì)應(yīng)
6、,這個(gè)系數(shù)就叫做權(quán)或位權(quán)。十進(jìn)制數(shù)的位權(quán)一般表示為:10n-1式中,10為十進(jìn)制的進(jìn)位基數(shù);10的i次為第i位的權(quán);n表示相對(duì)于小數(shù)點(diǎn)的位置,取整數(shù);當(dāng)n位于小數(shù)點(diǎn)的左邊時(shí),依次取n=1、2、3n。位于小數(shù)點(diǎn)的右邊時(shí),依次取n=-1、-2、-3因此,634.27可以寫為:634.27=6102+3101+4100+210-1+710-2在正常書寫時(shí),各數(shù)碼的位權(quán)隱含在數(shù)位之中,即個(gè)位、十位、百位等。二、二進(jìn)制計(jì)算機(jī)作為一種電子計(jì)算工具,是由大量的電子器件組成的,在這些電子器件中,電路的通和斷、電位的高和低,用兩個(gè)數(shù)字符號(hào)“1”和“0”分別表示容易實(shí)現(xiàn)。同時(shí)二進(jìn)制的運(yùn)算法則也很簡單,因此,在計(jì)算
7、機(jī)內(nèi)部通常用二進(jìn)制代碼來作為內(nèi)部存儲(chǔ)、傳輸和處理數(shù)據(jù)。1、可行性:若使用十進(jìn)制數(shù),則需要這樣的電子器件,它必須有能表示09數(shù)碼的10個(gè)物理狀態(tài),這在技術(shù)上是相當(dāng)困難的(目前為止沒有完全解決),而使用二進(jìn)制數(shù),只需0,1兩個(gè)狀態(tài),技術(shù)上輕而易舉,如開關(guān)的通與斷,晶體管中導(dǎo)通與截止等,磁介質(zhì)的帶磁與不帶磁。2、可靠性:二進(jìn)制只有兩種狀態(tài),數(shù)字傳輸處理不易出錯(cuò)。3、簡易性:二進(jìn)制運(yùn)算法則比較簡單,如:求和法則(3個(gè)) :0+0=0 , 0+1=1+0=1, 1+1=10求積法則(3個(gè)) :00=0,01=10=0, 11=1這就使計(jì)算機(jī)運(yùn)算器的結(jié)構(gòu)大大簡化,控制也簡單,較容易實(shí)現(xiàn)4、邏輯性:可用進(jìn)制
8、的0,1直接代表邏輯代數(shù)中的“假”和“真”因此,電子計(jì)算機(jī)處理的信息,都是僅用“0”與“1”兩個(gè)簡單數(shù)字表示的信息,或者是用這種數(shù)字進(jìn)行了編碼的信息。這種數(shù)制叫做二進(jìn)制。要了解計(jì)算機(jī),首先要了解計(jì)算機(jī)中數(shù)的表示方法。為了區(qū)別不同數(shù)制表示的數(shù),通常用右括另外下標(biāo)數(shù)字或字母表示數(shù)制,十進(jìn)制數(shù)用d表示,二進(jìn)制用b表示,十六進(jìn)制數(shù)用h表示,八進(jìn)制用o表示。二進(jìn)制計(jì)算法的特點(diǎn):二進(jìn)制數(shù)只有“0”和“1”兩個(gè)數(shù)碼,基數(shù)是2,最大的數(shù)字是1;采用逢二進(jìn)一的原則。二進(jìn)制的位權(quán)一般表示為:2n-1。各位的權(quán)為以2為底的冪。例如,(01101010)各位的權(quán)自至在依次為27、26、25、24、23、22、21、2
9、0。二進(jìn)制數(shù)的算術(shù)四則運(yùn)算規(guī)則,除進(jìn)、借位外與十進(jìn)制數(shù)相同。二進(jìn)制加法規(guī)則00=0 10=101=1 11=10(粗體為進(jìn)位位)二進(jìn)制減法規(guī)則0-0=0 0-1=1-借位1-0=1 1-1=0二進(jìn)制乘法規(guī)則00=0 10=001=0 11=1為了區(qū)別于十進(jìn)制數(shù),在書寫時(shí)二進(jìn)制數(shù)可以用兩種方法表示:例如:(1011.01)2或1011.1b。 例如:寫出(1011.01)2的十進(jìn)制數(shù)表達(dá)式。 (1011.01)2=123+022+121+120+02-1+12-2=(11.25)10二進(jìn)制數(shù)第0位的權(quán)值是2的0次方,第1位的權(quán)值是2的1次方所以,設(shè)有一個(gè)二進(jìn)制數(shù):0110 0100,轉(zhuǎn)換為10進(jìn)
10、制為下面是豎式:第0位 0 * 20 =0第1位 0 * 21 =0第2位 1 * 22 =4第3位 0 * 23 =0第4位 0 * 24 =0第5位 1 * 25 =32第6位 1 * 26 =64第7位 0 * 27 =0-100 用橫式計(jì)算為:0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100注意:0乘以多少都是0,所以我們也可以直接跳過值為0的位:1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 100從上面可以看出計(jì)數(shù)的習(xí)慣都是從0開始,所以,在你看明白上面那行
11、內(nèi)容后,讓我們立刻改口換成下面的說法,以后我們只用這種說法:二進(jìn)制數(shù):第0位數(shù)表示幾個(gè)1 (20),第1位數(shù)表示幾個(gè)2(21),第3位數(shù)表示幾個(gè)4(22),第4位數(shù)表示向個(gè)8(23)按照這種說法,我們可以發(fā)現(xiàn),從右向左數(shù),第n位數(shù)的權(quán)值 = 2的n次方。二進(jìn)制各位權(quán)值的計(jì)算方法: 第n位權(quán)值 = 2n下表詳細(xì)地表示 2進(jìn)制數(shù):11111111 是如何逐位計(jì)算,累加得到10進(jìn)制的值:第幾位76543210合計(jì)權(quán)值27=12826=6425=3224=1623=822=421=220=12進(jìn)制1111111110進(jìn)制1286432168421255上表表示了這么一個(gè)計(jì)算過程(*表示乘號(hào)): 1 *
12、 27 + 1 * 26 + 1 * 25 + 1 * 24 + 1 * 23 + 1 * 22 + 1 * 21 + 1* 20 = 255(順便說一句,如果你忘了20 等于多少有點(diǎn)遲疑,請(qǐng)復(fù)習(xí)一下初中的數(shù)學(xué)知識(shí):任何數(shù)的0次方都等于1)結(jié)果是:11111111(b) = 255 (d)(為不了互相混淆,我們?cè)跁谐S?b/b)來表示前面的數(shù)是2進(jìn)制的,而(d/d)則表示該數(shù)是10進(jìn)制數(shù)。同樣地,另有8進(jìn)制數(shù)用(o/o)表示,16進(jìn)制用(h/h)表示。不過記住了,這只是在書中使用,在程序中,另有一套表示方法。)以前我們知道1個(gè)字節(jié)有8位,現(xiàn)在通過計(jì)算,我們又得知:1個(gè)字節(jié)可以表達(dá)的最大的數(shù)是
13、255,也就是說表示0255這256個(gè)數(shù)。那么兩個(gè)字節(jié)(雙字節(jié)數(shù))呢?雙字節(jié)共16位。 1111111111111111,這個(gè)數(shù)并不大,但長得有點(diǎn)眼暈,從現(xiàn)在起,我們要學(xué)會(huì)這樣來表達(dá)二制數(shù):1111 1111 1111 1111,即每4位隔一空格。雙字節(jié)數(shù)最大值為:1 * 215 + 1 *214 + 1* 213 + 1 * 212 + 1 * 211 + 1 * 210 + + 1 * 22 + 1 * 21 + 1* 20 = 65535很自然,我們可以想到,一種數(shù)據(jù)類型允許的最大值,和它的位數(shù)有關(guān)。具體的計(jì)算方法方法是,如果它有n位,那么最大值就是:n位二進(jìn)制數(shù)的最大值:1 * 2(n
14、-1) + 1 * 2(n-2) + . + 1 * 20任何一種基本數(shù)據(jù)類型,都有其范圍。比如字符類型,它的最大值是255,那么,當(dāng)一個(gè)數(shù)在其類型的范圍已經(jīng)是最大值時(shí),如果再往上加1,就會(huì)照成“溢出”。其實(shí),有限定的范圍的數(shù)量,并不只在計(jì)算機(jī)中出現(xiàn)。鐘表就是一個(gè)例子。10點(diǎn)再加1點(diǎn)是11點(diǎn),再加1點(diǎn)是12點(diǎn),可是再加1點(diǎn),就又回到1點(diǎn)。再如汽車的行程表,假設(shè)最多只能顯示99999公里,當(dāng)達(dá)到最高值后繼續(xù)行駛,行程表就會(huì)顯示為00000公里。二進(jìn)制的優(yōu)點(diǎn)是:二進(jìn)制只有“0”和“1”兩數(shù)字,很容易表示。電壓的高和低、 晶體管的截止與飽和、磁性材料的磁化方向等都可以表示為“0”和“1”兩種狀態(tài)。二
15、進(jìn)制數(shù)的每一位只有0和1兩狀態(tài),只需要兩種設(shè)備就能表示, 所以二進(jìn)制數(shù)節(jié)省設(shè)備。由于狀態(tài)簡單,所以抗干擾力強(qiáng),可靠性高。二進(jìn)制的主要缺點(diǎn)是數(shù)位太長,不便閱讀和書寫,人們也不習(xí)慣。為此常用八進(jìn)制和十六進(jìn)制作為二進(jìn)制的縮寫方式。為了適應(yīng)人們的習(xí)慣,通常在計(jì)算機(jī)內(nèi)都采用二進(jìn)制數(shù),輸入和輸出采用十進(jìn)制數(shù),由計(jì)算機(jī)自己完成二進(jìn)制與十進(jìn)制之間的相互轉(zhuǎn)換。三、十六進(jìn)制數(shù)二進(jìn)制數(shù)在計(jì)算機(jī)系統(tǒng)中處理很方便,但當(dāng)位數(shù)較多時(shí),比較難記憶及書寫,為了減小位數(shù),通常將二進(jìn)制數(shù)用十六進(jìn)制表示。2進(jìn)制,用兩個(gè)阿拉伯?dāng)?shù)字:0、1;8進(jìn)制,用八個(gè)阿拉伯?dāng)?shù)字:0、1、2、3、4、5、6、7;10進(jìn)制,用十個(gè)阿拉伯?dāng)?shù)字:0到9;1
16、6進(jìn)制,用十六個(gè)阿拉伯?dāng)?shù)字等等,阿拉伯人或說是印度人,只發(fā)明了10個(gè)數(shù)字??? 16進(jìn)制就是逢16進(jìn)1,但我們只有0-9這十個(gè)數(shù)字,所以我們用a,b,c,d,e,f這五個(gè)字母來分別表示10,11,12,13,14,15。字母不區(qū)分大小寫。十六進(jìn)制數(shù)的第0位的權(quán)值為16的0次方,第1位的權(quán)值為16的1次方,第2位的權(quán)值為16的2次方。所以,在第n(n從0開始)位上,如果是是數(shù) x (x 大于等于0,并且x小于等于 15,即:f)表示的大小為 x * 16的n次方。假設(shè)有一個(gè)十六進(jìn)數(shù) 2af5, 那么如何換算成10進(jìn)制呢?用豎式計(jì)算: 第0位: 5 * 160 = 5第1位: f * 161 = 2
17、40第2位: a * 162 = 2560第3位: 2 * 163 = 8192 -10997 直接計(jì)算就是:5 * 160 + f * 161 + a * 162 + 2 * 163 = 10997(別忘了,在上面的計(jì)算中,a表示10,而f表示15)現(xiàn)在可以看出,所有進(jìn)制換算成10進(jìn)制,關(guān)鍵在于各自的權(quán)值不同。假設(shè)有人問你,十進(jìn)數(shù) 1234 為什么是 一千二百三十四?你盡可以給他這么一個(gè)算式:1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100十六進(jìn)制是計(jì)算機(jī)系統(tǒng)中除二進(jìn)制數(shù)之外使用較多的進(jìn)制,其計(jì)數(shù)法的特點(diǎn)為:有0,1,2,3,4,5,6,7,8,9,a
18、,b,c,d,e,f等共十六個(gè)數(shù)碼,其分別對(duì)應(yīng)于十進(jìn)制數(shù)的015;十六進(jìn)制數(shù)的加減法的進(jìn)借位規(guī)則為:借一當(dāng)十六,逢十六進(jìn)一。十六進(jìn)制數(shù)的位權(quán)一般表示為:16n-1。其中16是十六進(jìn)制的進(jìn)位基數(shù),n表示相對(duì)小數(shù)點(diǎn)的位置。在書寫時(shí),用加注16或h的方式表示十六進(jìn)制數(shù),例如:(8fa.5)16或8fa.5h。例如:寫出(8fa.5)16的十進(jìn)制數(shù)表達(dá)式。(8fa.5)16=8162+15161+10160+516-1=(2298.3125)10四、八進(jìn)制數(shù)八進(jìn)制計(jì)數(shù)法的特點(diǎn)是:有八個(gè)不同的計(jì)算符號(hào)0、1、2、3、4、5、6、7,這八個(gè)符號(hào)稱為數(shù)碼。采用逢八進(jìn)一的原則。對(duì)應(yīng)于十進(jìn)制數(shù)0、1、2、3、4
19、、5、6、7、8,八進(jìn)制數(shù)分別記作0、1、2、3、4、5、6、7、8、10。八進(jìn)制數(shù)第0位的權(quán)值為8的0次方,第1位權(quán)值為8的1次方,第2位權(quán)值為8的2次方所以,設(shè)有一個(gè)八進(jìn)制數(shù):1507,轉(zhuǎn)換為十進(jìn)制為:用豎式表示:第0位 7 * 80 =7第1位 0 * 81 =0 第2位 5 * 82 =320 第3位 1 * 83 =512 - 839同樣,我們也可以用橫式直接計(jì)算:7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839結(jié)果是,八進(jìn)制數(shù) 1507 轉(zhuǎn)換成十進(jìn)制數(shù)為 839下表列出了十進(jìn)制016對(duì)應(yīng)的二進(jìn)制數(shù)和十六進(jìn)制數(shù)。十進(jìn)制數(shù)二進(jìn)制數(shù)十六進(jìn)制數(shù)00000010
20、0011200102300113401004501015601106701117810008910019101010a111011b121100c131101d141110e151111f161000010五、十進(jìn)制數(shù)轉(zhuǎn)化為非十進(jìn)制數(shù)十進(jìn)制轉(zhuǎn)換數(shù)轉(zhuǎn)換為非十進(jìn)制數(shù)時(shí),可將其分為整數(shù)部分和小數(shù)部分分別進(jìn)行轉(zhuǎn)換,最后將結(jié)果合并為目的數(shù)。 整數(shù)部分的轉(zhuǎn)換整數(shù)部分的轉(zhuǎn)換是采用除基取余法。所謂除基取余法就是用欲轉(zhuǎn)換的數(shù)據(jù)的基數(shù)去除十進(jìn)制數(shù)的整數(shù)部分,第一次除取得的余數(shù)為目的數(shù)的最低位,把得到的商再除以該基數(shù),所得余數(shù)為目的數(shù)的次低位,依此類推,繼續(xù)上面的過程,直到商為0時(shí),所得余數(shù)為目的數(shù)的最高位。1、十
21、進(jìn)制轉(zhuǎn)換成二進(jìn)制例1、:將十進(jìn)制的168轉(zhuǎn)換為二進(jìn)制 (10101000)2分析:第一步,將168除以2,商84,余數(shù)為0 第二步,將商84除以2,商42余數(shù)為0 第三步,將商42除以2,商21余數(shù)為0第四步,將商21除以2,商10余數(shù)為1第五步,將商10除以2,商5余數(shù)為0 第六步,將商5除以2,商2余數(shù)為1第七步,將商2除以2,商1余數(shù)為0 第八步,將商1除以2,商0余數(shù)為1 第九步,讀數(shù),因?yàn)樽詈笠晃皇墙?jīng)過多次除以2才得到的,因此它是最高位,讀數(shù)字從最后的余數(shù)向前讀,即10101000。例2、6轉(zhuǎn)換成二進(jìn)制,結(jié)果是110。把上面的一段改成用表格來表示,則為:被除數(shù)計(jì)算過程商余數(shù)66/23
22、033/21111/201(在計(jì)算機(jī)中,用 / 來表示) 如果是在考試時(shí),我們要畫這樣表還是有點(diǎn)費(fèi)時(shí)間,所更常見的換算過程是使用下圖的連除: (圖:1)請(qǐng)大家對(duì)照?qǐng)D,表,及文字說明,并且自已拿筆計(jì)算一遍如何將6轉(zhuǎn)換為二進(jìn)制數(shù)。 說了半天,我們的轉(zhuǎn)換結(jié)果對(duì)嗎?二進(jìn)制數(shù)110是6嗎?你已經(jīng)學(xué)會(huì)如何將二進(jìn)制數(shù)轉(zhuǎn)換成10進(jìn)制數(shù)了,所以請(qǐng)現(xiàn)在就計(jì)算一下110換成10進(jìn)制是否就是6。練習(xí):例將十進(jìn)制53d轉(zhuǎn)換為二進(jìn)制數(shù)110101b。小數(shù)部分的轉(zhuǎn)換小數(shù)部分的轉(zhuǎn)換是采用乘基取整法。所謂乘基取整法就是用該小數(shù)乘上目的數(shù)制的基數(shù),第一次乘得結(jié)果的整數(shù)部分為目的數(shù)的小數(shù)部分的最高位,其小數(shù)部分再乘上基數(shù),所得結(jié)果
23、的整數(shù)部分為目的數(shù)的次高位,依此類推,繼續(xù)上述的過程,直到小數(shù)部分為0或達(dá)到要求的精度為止。方法:乘2取整法,即將小數(shù)部分乘以2,然后取整數(shù)部分,剩下的小數(shù)部分繼續(xù)乘以2,然后取整數(shù)部分,剩下的小數(shù)部分又乘以2,一直取到小數(shù)部分 為零為止。如果永遠(yuǎn)不能為零,就同十進(jìn)制數(shù)的四舍五入一樣,按照要求保留多少位小數(shù)時(shí),就根據(jù)后面一位是0還是1,取舍,如果是零,舍掉,如果是1,向入一位。換句話說就是0舍1入。讀數(shù)要從前面的整數(shù)讀到后面的整數(shù),下面舉例: 例1:將0.125換算為二進(jìn)制 (0.001)2分析:第一步,將0.125乘以2,得0.25,則整數(shù)部分為0,小數(shù)部分為0.25; 第二步, 將小數(shù)部分
24、0.25乘以2,得0.5,則整數(shù)部分為0,小數(shù)部分為0.5; 第三步, 將小數(shù)部分0.5乘以2,得1.0,則整數(shù)部分為1,小數(shù)部分為0.0; 第四步,讀數(shù),從第一位讀起,讀到最后一位,即為0.001。 例2,將0.45轉(zhuǎn)換為二進(jìn)制(保留到小數(shù)點(diǎn)第四位) 大家從上面步驟可以看出,當(dāng)?shù)谖宕巫龀朔〞r(shí)候,得到的結(jié)果是0.4,那么小數(shù)部分繼續(xù)乘以2,得0.8,0.8又乘以2的,到1.6這樣一直乘下去,最后不可能得到小數(shù)部分為零,因此,這個(gè)時(shí)候只好學(xué)習(xí)十進(jìn)制的方法進(jìn)行四舍五入了,但是二進(jìn)制只有0和1兩個(gè),于是就出現(xiàn)0舍1入。這個(gè)也是計(jì)算機(jī)在轉(zhuǎn)換中會(huì)產(chǎn)生誤差,但是由于保留位數(shù)很多,精度很高,所以可以忽略不計(jì)
25、。 那么,我們可以得出結(jié)果將0.45轉(zhuǎn)換為二進(jìn)制約等于(0.0111)2從上面可以看出該數(shù)在轉(zhuǎn)換為二進(jìn)制時(shí),盡管已經(jīng)過了解5次相乘,但其小數(shù)位還存在,由于題目要求保留小數(shù)后4位,故結(jié)果為:0.736d0.1011b或0.736d0.1100b。上面介紹的方法是十進(jìn)制轉(zhuǎn)換為為二進(jìn)制的方法,需要大家注意的是: 1) 十進(jìn)制轉(zhuǎn)換為二進(jìn)制,需要分成整數(shù)和小數(shù)兩個(gè)部分分別轉(zhuǎn)換。2) 當(dāng)轉(zhuǎn)換整數(shù)時(shí),用的除2取余法,而轉(zhuǎn)換小數(shù)時(shí)候,用的是乘2取整法 。3) 注意他們的讀數(shù)方向。因此,我們從上面的方法,我們可以得出十進(jìn)制數(shù)168.125轉(zhuǎn)換為二進(jìn)制為10101000.001,或者十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)約等于1
26、0101000.0111。 二進(jìn)制轉(zhuǎn)換為十進(jìn)制不分整數(shù)和小數(shù)部分:方法:按權(quán)相加法,即將二進(jìn)制每位上的數(shù)乘以權(quán),然后相加之和即是十進(jìn)制數(shù)。例 將二進(jìn)制數(shù)101.101轉(zhuǎn)換為十進(jìn)制數(shù)。 得出結(jié)果:(101.101)2=(5.625)10 1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=4+1+0.5+0.125=(5.625)10大家在做二進(jìn)制轉(zhuǎn)換成十進(jìn)制需要注意的是:1) 要知道二進(jìn)制每位的權(quán)值 。2) 要能求出每位的值。2、十進(jìn)制轉(zhuǎn)換成八進(jìn)制10進(jìn)制數(shù)轉(zhuǎn)換成8進(jìn)制的方法,和轉(zhuǎn)換為2進(jìn)制的方法類似,惟一變化:除數(shù)由2變成8。來看一個(gè)例子,如何將十進(jìn)制數(shù)120轉(zhuǎn)換成八進(jìn)制數(shù)。用
27、表格表示:被除數(shù)計(jì)算過程商余數(shù)120120/81501515/81711/801120轉(zhuǎn)換為8進(jìn)制,結(jié)果為:170。2、十進(jìn)制轉(zhuǎn)換成十六進(jìn)制10進(jìn)制數(shù)轉(zhuǎn)換成16進(jìn)制的方法,和轉(zhuǎn)換為2進(jìn)制的方法類似,惟一變化:除數(shù)由2變成16。同樣是120,轉(zhuǎn)換成16進(jìn)制則為:被除數(shù)計(jì)算過程商余數(shù)120120/167877/1607120轉(zhuǎn)換為16進(jìn)制,結(jié)果為:78。作業(yè):請(qǐng)拿筆紙,采用(圖:1)的形式,演算上面兩個(gè)表的過程。六、非十制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)由于任一數(shù)都可以按權(quán)展開,于是很容易將一個(gè)非十進(jìn)制數(shù)轉(zhuǎn)換為相應(yīng)的十進(jìn)制數(shù)。具體的步驟是:將一個(gè)非十進(jìn)制按權(quán)展開成一個(gè)多項(xiàng)式,每項(xiàng)是該位的數(shù)碼與相應(yīng)的權(quán)之積,把多項(xiàng)
28、式按十進(jìn)制數(shù)的規(guī)則進(jìn)行計(jì)算機(jī)求和,所得結(jié)果即是該數(shù)的十進(jìn)制。七、二進(jìn)制與十六進(jìn)制數(shù)、八進(jìn)制數(shù)的相互轉(zhuǎn)換四位二進(jìn)制數(shù)共有十六種組合,而十六種組合正好與十六進(jìn)制的十六種組合一致,故每四位二進(jìn)制數(shù)對(duì)應(yīng)于一位十六進(jìn)制數(shù),因此二進(jìn)制數(shù)與十六進(jìn)制之間的轉(zhuǎn)換非常簡單。三位二進(jìn)制數(shù)共有八種組合,而八種組合正好與八進(jìn)制的八種組合一致,故每三位二進(jìn)制數(shù)對(duì)應(yīng)于一位八進(jìn)制數(shù),因此二進(jìn)制數(shù)與八進(jìn)制之間的轉(zhuǎn)換也非常簡單。下面通過四個(gè)例子來說其轉(zhuǎn)換:從上面例子可以總結(jié)出兩種進(jìn)制轉(zhuǎn)換的方法:二進(jìn)制轉(zhuǎn)換為十六進(jìn)制時(shí):只要將二進(jìn)制數(shù)的整數(shù)部分自右向左每四位一組,最后不足四位的用零補(bǔ)足;小數(shù)部分則自左向右每四位一組,最后不足四位時(shí)
29、在右邊補(bǔ)零。再把每四位二進(jìn)制數(shù)對(duì)應(yīng)的十六進(jìn)制數(shù)寫出來即可。例1、:將二進(jìn)制11101001.1011轉(zhuǎn)換為十六進(jìn)制 得到結(jié)果:將二進(jìn)制11101001.1011轉(zhuǎn)換為十六進(jìn)制為e9.b 例2、:將101011.101轉(zhuǎn)換為十六進(jìn)制得到結(jié)果:將二進(jìn)制101011.101轉(zhuǎn)換為十六進(jìn)制為2b.a十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的正好與此相反,只要將每位的十六進(jìn)制數(shù)對(duì)應(yīng)的四位二進(jìn)制寫出來即行了。例1、將十六進(jìn)制6e.2轉(zhuǎn)換為二進(jìn)制數(shù)得到結(jié)果:將十六進(jìn)制6e.2轉(zhuǎn)換為二進(jìn)制為01101110.0010即110110.001二進(jìn)制轉(zhuǎn)換為八進(jìn)制時(shí):只要將二進(jìn)制數(shù)的整數(shù)部分自右向左每三位一組,最后不足三位的用零補(bǔ)足
30、;小數(shù)部分則自左向右每三位一組,最后不足三位時(shí)在右邊補(bǔ)零。再把每三位二進(jìn)制數(shù)對(duì)應(yīng)的八進(jìn)制數(shù)寫出來即可。例1、將二進(jìn)制數(shù)101110.101轉(zhuǎn)換為八進(jìn)制 得到結(jié)果:將101110.101轉(zhuǎn)換為八進(jìn)制為56.5 例2、 將二進(jìn)制數(shù)1101.1轉(zhuǎn)換為八進(jìn)制 得到結(jié)果:將1101.1轉(zhuǎn)換為八進(jìn)制為15.4八進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的也正好與此相反,只要將每位的八進(jìn)制數(shù)對(duì)應(yīng)的三位二進(jìn)制寫出來即行了。例1、將八進(jìn)制數(shù)67.54轉(zhuǎn)換為二進(jìn)制得到結(jié)果:將八進(jìn)制數(shù)67.54轉(zhuǎn)換為二進(jìn)制110111.101100,即110111.1011注意:一般情況先將十進(jìn)制轉(zhuǎn)化為二進(jìn)制,有二進(jìn)制轉(zhuǎn)化為其他進(jìn)制,如十六進(jìn)制和八進(jìn)制
31、。八、常用編碼bcd編碼在數(shù)字系統(tǒng)中,各種數(shù)據(jù)要轉(zhuǎn)換為二進(jìn)制代碼才能進(jìn)行處理,而人們習(xí)慣于使用十進(jìn)制數(shù),所以在數(shù)字系統(tǒng)的輸入輸出中仍采用十進(jìn)制數(shù),這樣就產(chǎn)生了用四位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)的方法,這種用于表示十進(jìn)制數(shù)的二進(jìn)制代碼稱為二十進(jìn)制代碼(binary coded decimal),簡稱為bcd碼。它具有二進(jìn)制數(shù)的形式以滿足數(shù)字系統(tǒng)的要求,又具有十進(jìn)制的特點(diǎn)(只有十種有效狀態(tài))。在某些情況下,計(jì)算機(jī)也可以對(duì)這種形式的數(shù)直接進(jìn)行運(yùn)算。常見的bcd碼表示有以下幾種。8421bcd編碼 這是一種使用最廣的bcd碼,是一種有權(quán)碼,其各位的權(quán)分別是(從最有效高位開始到最低有效位)8,4,2,1。例
32、寫出十進(jìn)數(shù)563.97d對(duì)應(yīng)的8421bcd碼。563.97d=0101 0110 0011 . 1001 01118421bcd例寫出8421bcd碼1101001.010118421bcd對(duì)應(yīng)的十進(jìn)制數(shù)。1101001.010118421bcd0110 1001 . 0101 10008421bcd=69.58d在使用8421bcd碼時(shí)一定要注意其有效的編碼僅十個(gè),即:00001001。四位二進(jìn)制數(shù)的其余六個(gè)編碼1010,1011,1100,1101,1110,1111不是有效編碼。2421bcd編碼 2421bcd碼也是一種有權(quán)碼,其從高位到低位的權(quán)分別為2,4,2,1,其也可以用四位二
33、進(jìn)制數(shù)來表示一位十進(jìn)制數(shù)。其編碼規(guī)則如下表。余3碼 余3碼也是一種bcd碼,但它是無權(quán)碼,但由于每一個(gè)碼對(duì)應(yīng)的8421bcd碼之間相差3,故稱為余3碼,其一般使用較少,故正須作一般性了解,具體的編碼如下表。常見bcd編碼表十進(jìn)制數(shù)8421bcd碼2421bcd碼余3碼0000000000011100010001010020010001001013001100110110401000100011150101101110006011011001001701111101101081000111010119100111111100100001,00000001,00000100,0011格雷反射碼(循
34、環(huán)碼)格雷碼是一種無權(quán)碼,其特點(diǎn)是任意兩個(gè)相鄰的碼之間只有一個(gè)數(shù)不同。另外由于最大數(shù)與最小數(shù)之間也僅一個(gè)數(shù)不同,故通常又叫格雷反射碼或循環(huán)碼。十進(jìn)制數(shù)二進(jìn)制數(shù)格雷碼十進(jìn)制數(shù)二進(jìn)制數(shù)格雷碼000000000810001100100010001910011101200100011101010111130011001011101111104010001101211001010501010111131101101160110010114111010017011101001511111000九、原碼、反碼、補(bǔ)碼結(jié)束了各種進(jìn)制的轉(zhuǎn)換,我們來談?wù)劻硪粋€(gè)話題:原碼、反碼、補(bǔ)碼。我們已經(jīng)知道計(jì)算機(jī)中,所有數(shù)據(jù)最
35、終都是使用二進(jìn)制數(shù)表達(dá)。我們也已經(jīng)學(xué)會(huì)如何將一個(gè)10進(jìn)制數(shù)如何轉(zhuǎn)換為二進(jìn)制數(shù)。不過,我們?nèi)匀粵]有學(xué)習(xí)一個(gè)負(fù)數(shù)如何用二進(jìn)制表達(dá)。比如,假設(shè)有一int類型的數(shù),值為5,那么,我們知道它在計(jì)算機(jī)中用四個(gè)字節(jié)(32位)表示為:( 00000000 00000000 00000000 00000101)。5轉(zhuǎn)換成二制是101,不過int類型的數(shù)占用4字節(jié)(32位),所以前面填了一堆0。那么-5在計(jì)算機(jī)中如何表示?在計(jì)算機(jī)中,負(fù)數(shù)以其正值的補(bǔ)碼形式表達(dá)。什么叫補(bǔ)碼呢?這得從原碼,反碼說起。原碼:一個(gè)整數(shù),按照絕對(duì)值大小轉(zhuǎn)換成的二進(jìn)制數(shù),稱為原碼。比如 00000000 00000000 00000000
36、00000101 是 5的 原碼。反碼:將二進(jìn)制數(shù)按位取反,所得的新二進(jìn)制數(shù)稱為原二進(jìn)制數(shù)的反碼。取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)比如:將00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。稱:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反碼。反碼是相互的,所以也可稱:11111111 11111111 11111111 11111010 和 00000000
37、 00000000 00000000 00000101 互為反碼。補(bǔ)碼:反碼加1稱為補(bǔ)碼。也就是說,要得到一個(gè)數(shù)的補(bǔ)碼,先得到反碼,然后將反碼加上1,所得數(shù)稱為補(bǔ)碼。比如:00000000 00000000 00000000 00000101 的反碼是:11111111 11111111 11111111 11111010。那么,補(bǔ)碼為:11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011所以,-5 在計(jì)算機(jī)中表達(dá)為:11111111 11111111 11111111 11111011。轉(zhuǎn)換
38、為十六進(jìn)制:0xfffffffb。再舉一例,我們來看整數(shù)-1在計(jì)算機(jī)中如何表示。假設(shè)這也是一個(gè)int類型,那么:1、先取1的原碼: 00000000 00000000 00000000 000000012、得反碼:11111111 11111111 11111111 111111103、得補(bǔ)碼:11111111 11111111 11111111 11111111可見,1在計(jì)算機(jī)里用二進(jìn)制表達(dá)就是全1。16進(jìn)制為:0xffffff。一切都是紙上說的說1在計(jì)算機(jī)里表達(dá)為0xffffff,我能不能親眼看一看呢?當(dāng)然可以。利用簡單c程序,我們可以看到每個(gè)變量的16進(jìn)制值。十、理解有符號(hào)數(shù)和無符號(hào)數(shù)生
39、活中我們所講的數(shù)都是正數(shù),例如,同樣是年紀(jì)和工資,前者不需要有負(fù)值,但后者可能需要至少所有的老板都這樣認(rèn)為。那么,負(fù)數(shù)在計(jì)算機(jī)中如何表示呢?通過前面的學(xué)習(xí),我們知道計(jì)算機(jī)用“補(bǔ)碼”表示負(fù)數(shù)。1、你自已決定是否需要有正負(fù)。就像我們必須決定某個(gè)量使用整數(shù)還是實(shí)數(shù),使用多大的范圍數(shù)一樣,我們必須自已決定某個(gè)量是否需要正負(fù)。如果這個(gè)量不會(huì)有負(fù)值,那么我們可以定它為帶正負(fù)的類型。在計(jì)算機(jī)中,可以區(qū)分正負(fù)的類型,稱為有符類型,無正負(fù)的類型(只有正值),稱為無符類型。數(shù)值類型分為整型或?qū)嵭?,其中整型又分為無符類型或有符類型,而實(shí)型則只有符類型。字符類型也分為有符和無符類型。比如有兩個(gè)量,年齡和庫存,我們可以
40、定前者為無符的字符類型,后者定為有符的整數(shù)類型。2、使用二制數(shù)中的最高位表示正負(fù)。首先得知道最高位是哪一位?1個(gè)字節(jié)的類型,如字符類型,最高位是第7位,2個(gè)字節(jié)的數(shù),最高位是第15位,4個(gè)字節(jié)的數(shù),最高位是第31位。不同長度的數(shù)值類型,其最高位也就不同,但總是最左邊的那位(如下示意)。字符類型固定是1個(gè)字節(jié),所以最高位總是第7位。(粗體為最高位)單字節(jié)數(shù): 1111 1111(70)雙字節(jié)數(shù): 1111 1111 1111 1111(150)四字節(jié)數(shù): 1111 1111 1111 1111 1111 1111 1111 1111(310)當(dāng)我們指定一個(gè)數(shù)是無符號(hào)類型時(shí),那么其最高位的1或0,
41、和其它位一樣,用來表示該數(shù)的大小。當(dāng)我們指定一個(gè)數(shù)是有符號(hào)類型時(shí),此時(shí),最高數(shù)稱為“符號(hào)位”,為1時(shí),表示該數(shù)為負(fù)值,為0時(shí)表示為正值。3、無符號(hào)數(shù)和有符號(hào)數(shù)的范圍區(qū)別。無符號(hào)數(shù)中,所有的位都用于直接表示該值的大小;有符號(hào)數(shù)中最高位用于表示正負(fù),所以,當(dāng)為正值時(shí),該數(shù)的最大值就會(huì)變小。我們舉一個(gè)字節(jié)的數(shù)值對(duì)比:無符號(hào)數(shù): 1111 1111值:255=1* 27 + 1* 26 + 1* 25 + 1* 24 + 1* 23 + 1* 22 + 1* 21 + 1* 20有符號(hào)數(shù): 0111 1111值:127=1* 26 + 1* 25 + 1* 24 + 1* 23 + 1* 22 + 1
42、* 21 + 1* 20同樣是一個(gè)字節(jié),無符號(hào)數(shù)的最大值是255,而有符號(hào)數(shù)的最大值是127。原因是有符號(hào)數(shù)中的最高位被挪去表示符號(hào)了。并且,我們知道,最高位的權(quán)值也是最高的(對(duì)于1字節(jié)數(shù)來說是2的7次方=128),所以僅僅少于一位,最大值一下子減半。不過,有符號(hào)數(shù)的長處是它可以表示負(fù)數(shù)。因此,雖然它的在最大值縮水了,卻在負(fù)值的方向出現(xiàn)了伸展。我們?nèi)砸粋€(gè)字節(jié)的數(shù)值對(duì)比:無符號(hào)數(shù): 0 255有符號(hào)數(shù): -128 0 127同樣是一個(gè)字節(jié),無符號(hào)的最小值是 0 ,而有符號(hào)數(shù)的最小值是-128。所以二者能表達(dá)的不同的數(shù)值的個(gè)數(shù)都一樣是256個(gè)。只不過前者表達(dá)的是0到255這256個(gè)數(shù),后者表達(dá)的是
43、-128到+127這256個(gè)數(shù)。一個(gè)有符號(hào)的數(shù)據(jù)類型的最小值是如何計(jì)算出來的呢?有符號(hào)的數(shù)據(jù)類型的最大值的計(jì)算方法完全和無符號(hào)一樣,只不過它少了一個(gè)最高位(見第3點(diǎn))。但在負(fù)值范圍內(nèi),數(shù)值的計(jì)算方法不能直接使用1* 26 + 1* 25 的公式進(jìn)行轉(zhuǎn)換。在計(jì)算機(jī)中,負(fù)數(shù)除為最高位為1以外,還采用補(bǔ)碼形式進(jìn)行表達(dá)。所以在計(jì)算其值前,需要對(duì)補(bǔ)碼進(jìn)行還原。這里,回憶一下補(bǔ)碼的形式:以我們?cè)械臄?shù)學(xué)經(jīng)驗(yàn),在10進(jìn)制中:1 表示正1,而加上負(fù)號(hào):-1 表示和1相對(duì)的負(fù)值。那么,我們會(huì)容易錯(cuò)誤地認(rèn)為在2進(jìn)制中(1個(gè)字節(jié)): 0000 0001 表示正1,則高位為1后:1000 0001應(yīng)該表示-1。然而,
44、事實(shí)上計(jì)算機(jī)中的規(guī)定有些相反,請(qǐng)看下表:二進(jìn)制值(1字節(jié))十進(jìn)制值10000001-12710000011-125.1111 1110-21111 1111-1首先我們看到,從-1到-128,其二進(jìn)制的最高位都是1(表中標(biāo)為紅色),正如我們前面的學(xué)。然后我們有些奇怪地發(fā)現(xiàn),1000 0000 并沒有拿來表示 -0;而1000 0001也不是拿來直觀地表示-1。事實(shí)上,-1 用1111 1111來表示。怎么理解這個(gè)問題呢?先得問一句是-1大還是-128大?當(dāng)然是 -1 大。-1是最大的負(fù)整數(shù)。以此對(duì)應(yīng),計(jì)算機(jī)中無論是字符類型,或者是整數(shù)類型
45、,也無論這個(gè)整數(shù)是幾個(gè)字節(jié)。它都用全1來表示 -1。比如一個(gè)字節(jié)的數(shù)值中:1111 1111表示-1,那么,1111 1111 - 1 是什么呢?和現(xiàn)實(shí)中的計(jì)算結(jié)果完全一致。1111 1111 - 1 = 1111 1110,而1111 1110就是-2。這樣一直減下去,當(dāng)減到只剩最高位用于表示符號(hào)的1以外,其它低位全為0時(shí),就是最小的負(fù)值了,在一字節(jié)中,最小的負(fù)值是1000 0000,也就是-128。我們以-1為例,來看看不同字節(jié)數(shù)的整數(shù)中,如何表達(dá)-1這個(gè)數(shù):字節(jié)數(shù)二進(jìn)制值十進(jìn)制值單字節(jié)數(shù)1111 1111-1雙字節(jié)數(shù)1111 1111 1111 1111-1四字節(jié)數(shù)1111 1111 1
46、111 1111 1111 1111 1111 1111-1可能有同學(xué)這時(shí)會(huì)混了:為什么 1111 1111 有時(shí)表示255,有時(shí)又表示-1?所以我再強(qiáng)調(diào)一下本節(jié)前面所說的第2點(diǎn):你自已決定一個(gè)數(shù)是有符號(hào)還是無符號(hào)的。寫程序時(shí),指定一個(gè)量是有符號(hào)的,那么當(dāng)這個(gè)量的二進(jìn)制各位上都是1時(shí),它表示的數(shù)就是-1;相反,如果事選聲明這個(gè)量是無符號(hào)的,此時(shí)它表示的就是該量允許的最大值,對(duì)于一個(gè)字節(jié)的數(shù)來說,最大值就是255。什么是ascii碼?ascii碼英文全稱america standard code for information interchange,中文意思:美國信息交換標(biāo)準(zhǔn)碼。它已被國際標(biāo)準(zhǔn)
47、化組織(iso)定為國際標(biāo)準(zhǔn),稱為iso 646標(biāo)準(zhǔn)。適用于所有拉丁文字字母,ascii碼有7位碼和8位碼兩種形式。ascii碼于1968年提出,用于在不同計(jì)算機(jī)硬件和軟件系統(tǒng)中實(shí)現(xiàn)數(shù)據(jù)傳輸標(biāo)準(zhǔn)化,在大多數(shù)的小型機(jī)和全部的個(gè)人計(jì)算機(jī)都使用此碼。ascii碼劃分為兩個(gè)集合:128個(gè)字符的標(biāo)準(zhǔn)ascii碼和附加的128個(gè)字符的擴(kuò)充和ascii碼。因?yàn)?位二進(jìn)制數(shù)可以表示(21=)2種狀態(tài):0、1;而2位二進(jìn)制數(shù)可以表示(22)=4種狀態(tài):00、01、10、11;依次類推,7位二進(jìn)制數(shù)可以表示(27=)128種狀態(tài),每種狀態(tài)都唯一地編為一個(gè)7位的二進(jìn)制碼,對(duì)應(yīng)一個(gè)字符(或控制碼),這些碼可以排列成一
48、個(gè)十進(jìn)制序號(hào)0127。所以,7位ascii碼是用七位二進(jìn)制數(shù)進(jìn)行編碼的,可以表示128個(gè)字符。 第032號(hào)及第127號(hào)(共34個(gè))是控制字符或通訊專用字符,如控制符:lf(換行)、cr(回車)、ff(換頁)、del(刪除)、bel(振鈴)等; 通訊專用字符:soh(文頭)、eot(文尾)、ack(確認(rèn))等; 第33126號(hào)(共94個(gè))是字符,其中第4857號(hào)為09十個(gè)阿拉伯?dāng)?shù)字;6590號(hào)為26個(gè)大寫英文字母,97122號(hào)為26個(gè)小寫英文字母,其余為一些標(biāo)點(diǎn)符號(hào)、運(yùn)算符號(hào)等。 注意:在計(jì)算機(jī)的存儲(chǔ)單元中,一個(gè)ascii碼值占一個(gè)字節(jié)(8個(gè)二進(jìn)制位),其最高位(b7)用作奇偶校驗(yàn)位。所謂奇偶校驗(yàn)
49、,是指在代碼傳送過程中用來檢驗(yàn)是否出現(xiàn)錯(cuò)誤的一種方法,一般分奇校驗(yàn)和偶校驗(yàn)兩種。奇校驗(yàn)規(guī)定:正確的代碼一個(gè)字節(jié)中1的個(gè)數(shù)必須是奇數(shù),若非奇數(shù),則在最高位b7添1;偶校驗(yàn)規(guī)定:正確的代碼一個(gè)字節(jié)中1的個(gè)數(shù)必須是偶數(shù),若非偶數(shù),則在最高位b7添1。(ascii:american standard code for information interchange,美國信息交換標(biāo)準(zhǔn)碼。)值符號(hào)值符號(hào)值符號(hào)0空字符44,9132空格45-9233!46.933447/9435#48 570 995-36$58:9637%59;97 122a z38&6012541)63?12642*64127del (
50、delete鍵)43+65 90a z(其中,031都是一些不可見的字符,所以這里只列出值為0的字符,值為0的字符稱為空字符,輸出該字符時(shí),計(jì)算機(jī)不會(huì)有任何反應(yīng)。我們以后會(huì)學(xué)習(xí)0字符的特殊作用。)十二、數(shù)據(jù)在內(nèi)存中的存?。ㄗ兞颗c內(nèi)存地址)前面講到“白馬、黑馬”時(shí),我們說一匹白馬和一匹黑馬具有共同的數(shù)據(jù)類型“馬”,但二者是相對(duì)獨(dú)立的個(gè)體?,F(xiàn)在我們以共熟悉的“人”來繼續(xù)這個(gè)話題,最終引出變量與內(nèi)存地址的關(guān)系。張三和李四的數(shù)據(jù)類型都是“人類”。但張三和李四顯然是獨(dú)立的量:張三吃了兩塊蛋糕,李四不可能因此就覺和肚子飽了;而李四在下班的路上撿到一個(gè)錢包,雖然正好是張三的,兩人似乎通過錢包有了點(diǎn)關(guān)系,但誰
51、得誰失仍然不容混淆。這一切都很好理解。張三和李四之所以是不同的個(gè)體,根本原因在于兩人有著不同的肉身。如果是一對(duì)連體嬰兒,雖然也是兩個(gè)人,但當(dāng)左邊的嬰兒被蚊子咬一口時(shí),右邊嬰兒是否也會(huì)覺得癢,就不好說了。現(xiàn)在我們困難的是,如何理解兩個(gè)不同的變量,也是互相獨(dú)立的呢?答案就在“內(nèi)存地址”,“內(nèi)存地址”就是變量的肉身。不同的變量,擁有不同的內(nèi)存地址。譬如:char a;char b;上面有兩個(gè)字符類型的變量a和b,a擁有自已的內(nèi)存地址,b也擁有自已的內(nèi)存地址,二者絕不相同。而a、b只不過分別是那兩個(gè)內(nèi)存地址的“名字”,恰如“張三、李四”。讓我們看圖解:看,內(nèi)存就像是開賓館的。不過這有賓館有點(diǎn)怪。首先它
52、每一個(gè)“房間”的大小都是一個(gè)字節(jié)(因此,計(jì)算機(jī)能單獨(dú)處理的最小內(nèi)存單位為字節(jié))。它的門牌號(hào)也不叫房號(hào),而是叫內(nèi)存地址。在左圖中,“房客”,變量a住在內(nèi)存地址為1000002的內(nèi)存中,而變量b則住在它的隔壁,地址為100003的內(nèi)存中。另外,如果你足夠細(xì)心,你還會(huì)發(fā)現(xiàn):內(nèi)存地址由下往上,從小到大排列。變量的內(nèi)存地址是在程序運(yùn)行時(shí),才由操作系統(tǒng)決定。這就好像我們住賓館。我們預(yù)定一個(gè)房間,但房間號(hào)由賓館根據(jù)情況決定,我們可以改變變量的值,但變量的地址我們無法改變。對(duì)照賓館一說,就是我們訂了房間,可以不去住,還可以決定讓誰去住在那個(gè)房間里。(當(dāng)然,現(xiàn)實(shí)生活中賓館可能不會(huì)允許你這么做)。在前面圖示的例子
53、中,a、b是字符(char)類型。各占用1個(gè)字節(jié)。如果是 int類型,那么應(yīng)該占4個(gè)字節(jié)。這4個(gè)字節(jié)必須是連續(xù)的。讓我們?cè)賮砜匆粋€(gè)例子: int a;int b;char c;在后面c語言,我們聲明了兩個(gè)int類型和一個(gè)char類型的變量。同時(shí)和上面一樣,我們事實(shí)上是假設(shè)了這三個(gè)變量被依次序分配在相鄰的內(nèi)存地址上(真實(shí)情況下,這和其它因素,如指定的字節(jié)對(duì)齊方式等有關(guān))。從右圖中可以看到整型變量a占用了1000001100004這4個(gè)字節(jié)。在我們已學(xué)習(xí)的數(shù)據(jù)類型中,long double占用10個(gè)字節(jié),是占用內(nèi)存空間最大的一種數(shù)據(jù)類型。以后我們學(xué)習(xí)數(shù)組,或者用戶自定數(shù)據(jù)類型,則可能要求占用相當(dāng)大的,并且同樣必須是連續(xù)的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024個(gè)人珠寶買賣合同范本
- 2024年度版權(quán)質(zhì)押合同:含版權(quán)內(nèi)容、質(zhì)押價(jià)值、質(zhì)權(quán)實(shí)現(xiàn)
- 旅游推廣合作合同實(shí)例
- 攝影棚居間服務(wù)合同樣本
- 房屋銷售合同模板手冊(cè)
- 樂團(tuán)合作合同范本大全
- 電子郵件服務(wù)租用協(xié)議
- 2024家教公司與兼職教師合作合同范本
- 企業(yè)房屋租賃合同范本
- 2024保密合同樣書范文
- 期末測試卷(試題)-2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- 2024至2030年中國手機(jī)配件產(chǎn)業(yè)需求預(yù)測及發(fā)展趨勢前瞻報(bào)告
- 2024年小學(xué)閩教版全冊(cè)英語詞匯表
- 課題開題匯報(bào)(省級(jí)課題)
- 清真食品安全管理制度
- 學(xué)校心理健康教育合作協(xié)議書
- 2024江蘇省沿海開發(fā)集團(tuán)限公司招聘23人(高頻重點(diǎn)提升專題訓(xùn)練)共500題附帶答案詳解
- 2024年初級(jí)社會(huì)體育指導(dǎo)員(游泳)技能鑒定考試題庫(含答案)
- 湖北省危險(xiǎn)廢物監(jiān)管物聯(lián)網(wǎng)系統(tǒng)管理計(jì)劃填報(bào)說明
- Unit6ADayintheLife教學(xué)設(shè)計(jì)2024-2025學(xué)年人教版(2024)英語七年級(jí)上冊(cè)
- 2024年個(gè)人勞務(wù)承包合同書
評(píng)論
0/150
提交評(píng)論