唐良榮計算機導論-計算思維和應用技術-第5章 信息編碼Appt課件_第1頁
唐良榮計算機導論-計算思維和應用技術-第5章 信息編碼Appt課件_第2頁
唐良榮計算機導論-計算思維和應用技術-第5章 信息編碼Appt課件_第3頁
唐良榮計算機導論-計算思維和應用技術-第5章 信息編碼Appt課件_第4頁
唐良榮計算機導論-計算思維和應用技術-第5章 信息編碼Appt課件_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第1頁 共108頁 計算機第2頁 共108頁5.1.1 常用數(shù)制的特征1、十進制數(shù)編碼進制是按進位方式計數(shù)的數(shù)制系統(tǒng)。運算規(guī)那么:逢十進一,借一當十。十進制中,各數(shù)字的權為10的整數(shù)次冪?!纠?-1】將十進制數(shù)708按位權展開。708=7102+8100【例5-2】將十進制數(shù)12.34按位權方式展開。十進制數(shù)表示方式:2310或23D。12.34=1101+2100+310-1+410-2基數(shù)權數(shù)碼第3頁 共108頁5.1.1 常用數(shù)制的特征2、二進制數(shù)編碼根本符號:0、1;運算規(guī)那么:逢二進一,借一當二。四那么運算規(guī)那么:1加法運算:0+0=0,0+1=1,1+0=1,1+1=10有進位2減

2、法運算:0-0=0,1-0=1,1-1=0,0-1=1有借位3乘法運算:00=0,10=0,01=0,11=14除法運算:01=0,11=1除數(shù)不能為0 1 0 1 0 0 1 0 1第4頁 共108頁5.1.1 常用數(shù)制的特征【案例】二進制數(shù)的四那么運算。第5頁 共108頁5.1.1 常用數(shù)制的特征【擴展】二進制數(shù)的移位運算。乘2相當于左移1位后,在尾部補0;除2相當于右移1位后,在高位補0。第6頁 共108頁5.1.1 常用數(shù)制的特征二進制中,數(shù)字符號的權為2的整數(shù)次冪。如,23,22,21,20,2-1,2-2?!纠?-3】將二進制數(shù)1011按位權展開。10112=123+121+120

3、【例5-4】將二進制數(shù)1011.0101按位權展開。1011.01012=123+121+120+12-2+12-4二進制數(shù)用下標或在數(shù)字尾部加B表示如,10112或1011B。第7頁 共108頁5.1.1 常用數(shù)制的特征3、十六進制數(shù)編碼十六進制符號:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。運算規(guī)那么:逢16進1,借1當16。計算機內部并不采用十六進制數(shù)進展運算;十六進制數(shù)是為了便于專業(yè)人員方便轉換為二進制數(shù)。十六進制數(shù)用下標或在數(shù)字尾部加H表示。如:1816或18H;有時用前置“0 x表示十六進制數(shù);如:0 x000012A5表示十六進制數(shù)12A5。第8頁 共108

4、頁5.1.1 常用數(shù)制的特征常用數(shù)制之間的關系如表5-1所示。十進制數(shù)十六進制數(shù)二進制數(shù)BCD編碼000000000011000100012200100010330011001144010001005501010101660110011077011101118810001000991001100110A10100001 000011B10110001 000112C11000001 001013D11010001 001114E11100001 010015F11110001 0101第9頁 共108頁5.1.1 常用數(shù)制的特征4、恣意進制數(shù)的表示方法任何進位制都能用有限個數(shù)字符號表示一切數(shù)。

5、進制稱為基數(shù),如二進制的基數(shù)為2;不同數(shù)位上的數(shù)字有不同的位權。恣意R進制數(shù),可用公式5-1表示:N=An-1Rn-1An-2Rn-2A0R0A-1R-1A-mR-m 5-1A為恣意進制數(shù),R為基數(shù),n為整數(shù)的位數(shù)和權,m為小數(shù)的位數(shù)和權?!纠?-5】十進制數(shù)43.21按位權展開表示。43.21=4101+3100+210-1+110-2【例5-6】二進制數(shù)1101.11按位權展開表示。1101.112=123+122+021+12-0+12-1+12-2第10頁 共108頁 第5章 信息編碼1.1.1 計算機的開展第11頁 共108頁5.1.2 不同數(shù)制的轉換1、二進制數(shù)與十進制數(shù)之間的轉換

6、表5-2給出了2的整數(shù)次冪和十進制數(shù)值的對應關系。將二進制數(shù)各位的數(shù)乘以對應的權再累加起來?!纠?-8】將1101.1012按位權展開轉換成十進制數(shù)。 1101.1012232220212310 8410.50.1251013.625102 n2827262524232221202-12-22-32-4十進制數(shù)值25612864321684210.50.250.1250.0625第12頁 共108頁5.1.2 不同數(shù)制的轉換2、十進制數(shù)與二進制數(shù)轉換整數(shù)部分與小數(shù)部分分開轉換;整數(shù)部分采用除2取余法;小數(shù)部分采用乘2取整法?!纠?-9】十進制18.8125轉換為二進制數(shù)。整數(shù)除2取余,余數(shù)從低

7、到高陳列:182=9余 0 ,92=4余 1 ,42=2余 0 ,22=1余 0 ,1小于2不再除余 1 ;18=100102;小數(shù)乘2取整,積的整數(shù)從高到低陳列:0.81252= 1 .625,0.6252= 1 .25,0.252= 0 .5,0.502= 1 .0;0.8125=0.11012運算結果:18.812510=10010.11012第13頁 共108頁5.1.2 不同數(shù)制的轉換【例5-9】十進制18.8125轉換為二進制數(shù)的豎式計算。第14頁 共108頁5.1.2 不同數(shù)制的轉換【案例】十進制數(shù)100.345轉換為二進制數(shù)的豎式計算。100.345D1100100.01011

8、B1.3800.34520.69022 0.760 2 1.520 2 10025022521226232100010011 1.040余數(shù)余數(shù)到達精度要求后不再乘第15頁 共108頁5.1.2 不同數(shù)制的轉換3、二進制數(shù)與十六進制數(shù)轉換整數(shù)自右向左4位一組,缺乏4位時,在整數(shù)前面加0補足4位;小數(shù)自左向右4位一組,缺乏4位時,在小數(shù)后面加0補足4位;然后每4位二進制數(shù)對應1位十六進制數(shù),即可得到十六進制數(shù)?!纠?-10】將二進制數(shù)111101.010111轉換為十六進制數(shù)。111101.0101112=00111101.010111002=3D.5C16111101010111003D5C第

9、16頁 共108頁5.1.2 不同數(shù)制的轉換4、十六進制數(shù)與二進制數(shù)轉換以小數(shù)點為界,1位十六進制數(shù)對應4位二進制數(shù)?!纠?-11】:將十六進制數(shù)4B.61轉換為二進制數(shù)。4B.6116 =01001011.0110000124B610100101101100001第17頁 共108頁5.1.2 不同數(shù)制的轉換5、BCD編碼數(shù)制轉換存在的問題:需求進展乘法和除法運算,計算速度不快;需求進展浮點運算,存儲和計算較為復雜,計算效率低。BCD碼是一種二十進制編碼;BCD碼用4位二進制數(shù)表示1位十進制數(shù)。8421碼是最常用的BCD編碼,它各位的權值為:8、4、2、1;BCD碼只選用了4位二進制編碼中前

10、10組代碼。BCD碼不運用10101111六組編碼;編碼到1001后就產(chǎn)生進位。第18頁 共108頁5.1.2 不同數(shù)制的轉換BCD編碼與十進制數(shù)的對應關系如圖5-4所示?!纠?-12】將十進制數(shù)10.89轉換為BCD碼。10.89 =0001 0000.1000 1001BCD【例5-13】將BCD碼0111 0110.1000 0001BCD轉換為十進制數(shù)。0111 0110.1000 0001BCD =76.81十進制數(shù)1089BCD碼0001000010001001BCD碼0111011010000001十進制數(shù)7681第19頁 共108頁5.1.2 不同數(shù)制的轉換常用數(shù)制之間的轉換方

11、法如圖5-8所示。第20頁 共108頁 第5章 信息編碼1.1.1 計算機的開展第21頁 共108頁5.1.3 二進制整數(shù)編碼1、無符號二進制整數(shù)編碼方式運算結果超出數(shù)據(jù)表示范圍稱為“溢出。如,8位無符號數(shù)運算結果大于255時,就會產(chǎn)生“溢出。【例5-15】110010002+01000001= 1 00001001最高位1溢出編碼字節(jié)越長,數(shù)值表示范圍越大,越不容易導致“溢出問題?!耙钥臻g換時間的計算思想方式:假設小數(shù)值用1字節(jié)存儲,大數(shù)值用多字節(jié)存儲,這種變長存儲會使計算復雜化,由于需求添加定義數(shù)據(jù)長度位;計算時需求對每個數(shù)據(jù)進展長度判別。因此,程序設計時先要定義數(shù)據(jù)類型,同一類型數(shù)據(jù)采用

12、一致存儲長度。這樣雖然會浪費一些存儲空間,但提高了運算速度。第22頁 共108頁5.1.3 二進制整數(shù)編碼【例5-16】不同存儲長度時,無符號十進制數(shù)8610的編碼方式。1字節(jié)存儲:01010110 2字節(jié)存儲:0000000001010110 4字節(jié)存儲:00000000000000000000000001010110第23頁 共108頁5.1.3 二進制整數(shù)編碼2、帶符號二進制整數(shù)編碼方式計算機用最高位作為符號位,0表示正數(shù),1表示負數(shù),其他位表示數(shù)值大小。符號化的二進制數(shù)稱為機器數(shù)或原碼;沒有符號化的數(shù)稱為真值。機器數(shù)長度固定如8、16、32、64位。當二進制數(shù)位數(shù)不夠時,整數(shù)在最高位前

13、用0補足,小數(shù)在最低位后用0補足。【案例】二進制數(shù)+1011真值與機器數(shù)區(qū)別如下。真值8位機器數(shù)(原碼)16位機器數(shù)(原碼)+101110001011100000000 00010111第24頁 共108頁5.1.3 二進制整數(shù)編碼3、常用數(shù)據(jù)類型的存儲長度和表示范圍計算機中,同一類型的數(shù)據(jù)具有一樣的存儲長度,與數(shù)據(jù)的實踐長度無關。C言語中數(shù)據(jù)類型的長度以及數(shù)值域32位編譯器數(shù)據(jù)類型標識符類型說明存儲長度(字節(jié))數(shù)值范圍有效位 char字符型1 unsigned char無符號字符型2 short int短整型2-32 76832 7675 unsigned short int無符號短整型20

14、65 5355 int整型4-2 147 483 6482 147 483 64710 unsigned int無符號整型404 294 967 29510 float實型(浮點單精度)41.1810-383.401038 7 double實型(浮點雙精度)82.2310-3081.7910308 15 long double實型(浮點長雙精度)103.3710-49321.18104932 19第25頁 共108頁5.1.3 二進制整數(shù)編碼4、大整數(shù)的表示與計算普通情況下,最大有效數(shù)據(jù)為19位。超越編程言語表示范圍的大整數(shù),必需采用其它方式處置。【例5-19】在Excel 2019中,計算1

15、2 345 000 000 000 000 000+9 999計算結果=12 345 000 000 000 000 000可見加數(shù)被完全忽略,由于Excel只需16位有效數(shù)據(jù);超出16位時,雖然可以表達和計算,但將產(chǎn)生計算誤差。第26頁 共108頁5.1.3 二進制整數(shù)編碼密碼算法都建立在大整數(shù)運算根底上。如,要存儲100位有效數(shù)時,任何編程言語都無法處置;簡一方法:用字符串數(shù)組來存儲這個100位的有效數(shù)。大整數(shù)只能一位一位或幾位幾位輸入;或者用字符串的方式輸入。大整數(shù)加法:模擬豎式加法,從個位逐位相加;超越或到達10那么進位;進位保管在中間變量中;相加結果存放在數(shù)組中。大整數(shù)的加減運算必需

16、編寫程序實現(xiàn)。第27頁 共108頁5.1.3 二進制整數(shù)編碼【例5-20】計算:12 345 678 901 234 567 890+97 661 470 000 796 256 79812345678901234567890+97661470000796256798進位進位1101001011110007148902030824688第28頁 共108頁 第5章 信息編碼1.1.1 計算機的開展第29頁 共108頁5.1.4 二進制小數(shù)編碼1、定點數(shù)編碼方法定點數(shù):小數(shù)點位置固定不變的數(shù)。定點數(shù)有定點整數(shù)和定點小數(shù)。添加存儲長度可以提高小數(shù)的精度?!纠?-21】將二進制數(shù)-0.1001001

17、用2個字節(jié)存儲為定點小數(shù)。定點整數(shù)和定點小數(shù):1100100100000000S小數(shù)點符號位S小數(shù)點第30頁 共108頁5.1.4 二進制小數(shù)編碼2、浮點數(shù)編碼方法實數(shù)可以表示成:一個純小數(shù)和一個乘冪之積的方式?!纠?-22】123.45=0.12345103【例5-23】0.0034574=0.3457410-2【例5-24】3.14=3.14100=0.314101規(guī)格化表示方式小數(shù)點位置變化的數(shù)稱為浮點數(shù)。浮點數(shù)指數(shù)表示:指數(shù)稱為“階碼,小數(shù)稱為“尾數(shù)。二進制數(shù)的階碼和尾數(shù)都用二進制數(shù)表示?!纠?-25】1001.0112=0.100101122100【例5-26】-0.00101012

18、=-0.1010122-10第31頁 共108頁5.1.4 二進制小數(shù)編碼恣意二進制浮點數(shù)公式:N=M2E 5-2式中,M為尾數(shù)純小數(shù)部分,整數(shù)E為階碼,M與E都帶符號。二進制浮點數(shù)特征:尾數(shù)的位數(shù)決議數(shù)的精度;階碼的位數(shù)決議數(shù)的范圍。階符階碼E尾符S尾數(shù)M (定點整數(shù)) (定點小數(shù))第32頁 共108頁5.1.4 二進制小數(shù)編碼【例5-27】-0.000110112=-0.1101122-11的32位編碼如下:以上數(shù)據(jù)在計算機中的32位存儲格式如下:階符階碼尾符尾數(shù)10000011111011000 00000000 000000031 2423 1615 87 01000001111101

19、1000000000000000000第33頁 共108頁5.1.4 二進制小數(shù)編碼3二進制小數(shù)的截斷誤差1浮點數(shù)存儲空間不夠引起的截斷誤差截斷誤差舍入誤差: 二進制浮點數(shù)存儲時,假設尾數(shù)存儲空間不夠,會導致部分小數(shù)喪失。 可以運用較長的尾數(shù)域,減少截斷誤差?!纠?-28】二進制數(shù)10.101存儲為8位浮點數(shù)時,將引起截斷誤差。010 010101(最后一位丟失)第34頁 共108頁5.1.4 二進制小數(shù)編碼2數(shù)值轉換引起的截斷誤差截斷誤差的另外一個來源是無窮展開式。二進制中,有無窮展開式的數(shù)值多于十進制數(shù)。十進制小數(shù)轉換成二進制時,不能保證準確轉換;二進制小數(shù)轉換成十進制,也遇到同樣的問題。

20、【例5-29】十進制數(shù)0.8轉換為二進制時為:0.11001100.【例5-30】十進制數(shù)1/10轉換為二進制數(shù)時,也會遇到無窮展開式問題。十二進制小數(shù)轉換時,可根據(jù)精度要求取近似值,或采用0舍1入規(guī)那么。第35頁 共108頁5.1.4 二進制小數(shù)編碼3浮點數(shù)的相加順序一個大數(shù)加上一個小數(shù),那么小數(shù)能夠被截斷。多個數(shù)值相加的原那么是先相加小數(shù)字,防止產(chǎn)生截斷誤差。大多數(shù)商用軟件提供的計算精度曾經(jīng)足夠了。特殊運用領域如導航系統(tǒng),小誤差能夠在運算中累加,產(chǎn)生嚴重后果。第36頁 共108頁5.1.4 二進制小數(shù)編碼4、浮點數(shù)運算的精度十進制數(shù)轉換為二進制數(shù)時,需求的二進制數(shù)位數(shù)為: Log210/L

21、og22=3.33bit如,將32位包含小數(shù)點十進制數(shù)轉換成二進制數(shù)時;總共需求:323.3=106位二進制數(shù)。IEEE 754規(guī)范規(guī)定的浮點數(shù)規(guī)格如表5-4所示。浮點數(shù)規(guī)格總長(位) 符號位S(位) 階碼e(位)尾數(shù)M(位)尾數(shù)最大有效值單精度浮點數(shù)規(guī)格3218238 388 608雙精度浮點數(shù)規(guī)格64111524.51015擴展雙精度數(shù)規(guī)格180115641.81019擴展雙精度數(shù)規(guī)格21281151125.11033第37頁 共108頁5.1.4 二進制小數(shù)編碼【擴展】二進制浮點數(shù)的存儲。26.0D=11010.0B=+1.10100*24010000011 10100000000000

22、000000000+127=131=10000011B單精度 32位 例:第38頁 共108頁 第5章 信息編碼1.1.1 計算機的開展第39頁 共108頁5.1.5 二進制補碼運算1、原碼在二進制數(shù)運算中存在的問題原碼運算的復雜性:做x+y運算時,要判別兩個數(shù)的符號,添加了運算時間。原碼會出現(xiàn):000000002=+010,100000002=-010的“正0負0問題。符號位會對運算結果產(chǎn)生影響,導致運算出錯?!纠?-31】010000102+010000012=100000112進位導致的錯誤【例5-32】000000102+100000012=100000112符號位相加導致的錯誤可見原

23、碼運算會導致復雜性添加。二進制數(shù)的補碼可以帶符號運算,而運算結果不會產(chǎn)生錯誤;計算機中的數(shù)值廣泛采用補碼的方式進展存儲和計算。第40頁 共108頁5.1.5 二進制補碼運算2、二進制數(shù)的反碼編碼方法引入反碼是補碼運算的需求。二進制正數(shù)的反碼與原碼一樣;負數(shù)的反碼是對該數(shù)的原碼除符號位外各位取反?!纠?-33】二進制數(shù)字長為8位時,+510=00000101原=00000101反【例5-34】二進制數(shù)字長為8位時,-510=10000101原=11111010反第41頁 共108頁5.1.5 二進制補碼運算3、二進制數(shù)的補碼編碼方法正數(shù)的補碼=原碼。負數(shù)的補碼=原碼取反+1。原碼、反碼和補碼,符

24、號位都不變。【例5-35】1010的原碼為:1010=00001010原 -1010的原碼為:-1010=10001010原【例5-36】1010的反碼為:1010=00001010反 -1010的反碼為:=11110101反【例5-37】1010的補碼為:1010=00001010補 -1010的補碼為:-1010=11110110補第42頁 共108頁5.1.5 二進制補碼運算二進制數(shù)各種編碼的表示方法如表5-5所示。十進制數(shù)真值原碼反碼補碼0000000000000000000000000000100000001111111100000000+1+10000000100000001000

25、00001-1-1100000011111111011111111+15+1111000011110111000001110001-15-1111100011111111000011110001-127-1111111111111111000000010000001-128-1000000010000000第43頁 共108頁5.1.5 二進制補碼運算4、補碼的運算規(guī)那么補碼算法思想:把正數(shù)和負數(shù)都轉換為補碼方式,使減法變成加一個負數(shù)的方式,從而使正負數(shù)的加減運算轉換為單純的加法運算。補碼運算結論:補碼兩數(shù)加法運算時,結果仍為補碼。補碼的符號位可以與數(shù)值位一同參與運算。運算結果如有進位,判別能

26、否溢出;假設不是溢出,那么將進位舍去不要。第44頁 共108頁5.1.5 二進制補碼運算不論對正數(shù)和負數(shù),補碼都具有以下性質:A補B補AB補 5-3A補補A原 5-4式中,A、B為正整數(shù)、負整數(shù)、0均可。小數(shù)的情況,在以后課程討論。【例5-38】A=-7010,B=-5510,求A與B相加之和。1將A、B轉換為補碼;-7010=-(64+4+2)10=11000110原=10111001反+00000001=10111010補-5510=-(32+16+4+2+1)10=10110111原=11001000反+00000001=11001001補2進展補碼加法運算; 10111010 + 11

27、001001進位1自然丟失10000011第45頁 共108頁5.1.5 二進制補碼運算3將運算結果補碼進展求補運算取反加1,得到原碼。 10000011補=11111100反+00000001=11111101原=-12510結論:補碼加法運算不用思索數(shù)值正負,直接進展補碼加法即可。減法可以經(jīng)過補碼的加法運算實現(xiàn)。假設運算結果最高位為0,表示結果為正數(shù);假設最高位為1,那么結果為負數(shù)。第46頁 共108頁 計算機第47頁 共108頁5.2.1 英文字符編碼1、BCDIC編碼早期計算機字符編碼從霍爾瑞斯Herman Hollerith卡片開展而來;霍爾瑞斯卡片在1890年的美國人口普查中運用。

28、6位字符編碼系統(tǒng)BCDIC二進制與十進制交換編碼源自Hollerith碼;1960年代逐漸擴展為8位EBCDIC碼;IBM大型計算機采用EBCDIC碼規(guī)范。第48頁 共108頁5.2.1 英文字符編碼2、ASCII編碼1ASCII碼編碼規(guī)那么ASCII美國信息交換規(guī)范碼碼用7位二進制數(shù)對1個字符進展編碼;ASCII可以表示27=128個字符編碼。計算機以1個字節(jié)存放1個ASCII碼字符;ASCII碼每個字節(jié)最高位為0;2ASCII碼運用案例【例5-39】“Hello的ASCII編碼。Hello0100100001100101011011000110110001101111第49頁 共108頁5

29、.2.1 英文字符編碼1ASCII碼編碼規(guī)那么第50頁 共108頁5.2.1 英文字符編碼3ASCII碼編碼規(guī)律09字符碼高4位編碼為0011,低4位為00001001;去掉高4位時,低4位正好是09的二進制數(shù)。ASCII碼26個字母編碼是延續(xù)的;字母AZ碼值為6590;字母az碼值為97122;大寫字母第6位值為0,小寫字母第6位值為1;它們之間的ASCII碼值十進制方式相差32;ASCII編碼定義了33個無法顯示的控制碼;ASCII控制碼目前極少運用。第51頁 共108頁5.2.1 英文字符編碼3、擴展ASCII碼ANSI碼ASCII碼不能滿足非英語國家的需求。如,無法表示英磅符號;如,無

30、法顯示重音符號;如,無法顯示希臘語、希伯來語、阿拉伯語、俄語、漢語等。ASCII碼只用了7位,很多國家就運用128255的碼字來表示其他符號。1981年PC機推出時,就固化了一個256個符號的字符集。當PC機在美國之外銷售時,這些擴展的ASCII碼就完全亂套了。第52頁 共108頁5.2.1 英文字符編碼ANSI美國國家規(guī)范學會規(guī)范終了了這種混亂。ANSI規(guī)范:低128個碼字采用規(guī)范ASCII編碼;高128個碼字根據(jù)言語不同,采用“碼頁處置方式。如,IBM字符集碼頁為437;如,以色列碼頁是862;Windows國際版有很多這樣的碼頁,涵蓋了各種言語。第53頁 共108頁5.2.1 英文字符編

31、碼【擴展】ANSI擴展ASCII碼。第54頁 共108頁 第5章 信息編碼1.1.1 計算機的開展第55頁 共108頁5.2.2 漢字字符編碼1、雙字節(jié)字符集DBCS亞洲國家常用文字符號大約2萬多個。8位編碼不能滿足需求,處理方案是采用DBCS雙字節(jié)字符集編碼。DBCS用2個字節(jié)定義1個字符,當2個字節(jié)編碼值低于128時為ASCII碼,編碼值高于128時,為所在國家定義的編碼?!纠?-41】漢字早期采用雙字節(jié)編碼,字節(jié)最高位為0表示規(guī)范ASCII碼;字節(jié)最高位為1時,用2個字節(jié)表示一個漢字。即有的字符用1個字節(jié)表示如英文,有的字符用2個字節(jié)表示如漢字。第56頁 共108頁5.2.2 漢字字符編

32、碼雙字節(jié)編碼換存在以下問題:1程序中處置字符串時,指針挪動能夠會導致錯誤;2字符串存儲時,需求計算字符串的長度;3喪失雙字節(jié)字符的高位字節(jié)后,會產(chǎn)生“亂碼景象;4在存儲和傳輸中,是高字節(jié)在前,還是低字節(jié)在前?第57頁 共108頁5.2.2 漢字字符編碼2、漢字編碼1GB2312-80字符集漢字編碼1981年,GB2312-80規(guī)范公布。GB2312-80規(guī)范規(guī)定:1個漢字用2個字節(jié)表示;每個字節(jié)只運用低7位,最高位為0;共收錄6 763個簡體漢字、682個符號;一級漢字3 755個,以拼音排序;二級漢字3 008個,以偏旁排序。【例5-42】“啊字的國標碼為:00110000001000013

33、0H21H第58頁 共108頁5.2.2 漢字字符編碼【案例】GB2312-80編碼第59頁 共108頁5.2.2 漢字字符編碼2內碼國標碼最高位為0,與ASCII碼無法區(qū)分;因此,早期計算機內部,漢字編碼全部采用內碼表示。早期內碼是將國標碼兩個字節(jié)的最高位設定為1,堅持中英文的兼容性?!纠?-43】“啊字的內碼為:操作系統(tǒng)內部編碼,早期DOS系統(tǒng)采用ASCII碼;目前操作系統(tǒng)內部根本都采用Unicode字符集編碼,字節(jié)高位0、1兼有。1011000010100001B0HA1H第60頁 共108頁5.2.2 漢字字符編碼3編碼轉換部分編程言語提供了編碼轉換函數(shù)?!纠?-44】用PHP言語編碼

34、轉換函數(shù),求字符串“中國的GB2312-80內碼。4BIG5字符集漢字編碼臺灣、香港地域普遍運用BIG5繁體漢字編碼規(guī)范;BIG5包括440個符號,13 060個漢字。第61頁 共108頁5.2.2 漢字字符編碼3、字形編碼ASCII、GB2312-80等處理了信息的存儲,傳輸,計算、處置等問題;字符的顯示和打印輸出時,需求另外對字形編碼。、通常,將一切字形編碼的集合稱為字庫。計算機中有幾十種中英文字庫。字形編碼有點陣字形和矢量字形兩種類型。漢字輸入鍵盤輸入漢字信息輸入碼機內碼字形碼顯示/打印輸出漢字輸出國標碼第62頁 共108頁5.2.2 漢字字符編碼1點陣字形編碼點陣字形是將每個字符分成1

35、616或其他分辨率的點陣圖像,然后用圖像點的有無普通為黑白表示字形的輪廓。缺陷:不能放大,放大后字符邊緣會出現(xiàn)鋸齒景象。第63頁 共108頁5.2.2 漢字字符編碼2矢量字形編碼矢量字形保管每個字符的數(shù)學描畫信息。如,筆劃的起始、終止坐標,半徑、弧度等。顯示和打印矢量字形時,要經(jīng)過一系列的運算才干輸出結果。矢量字形可以無限放大,筆劃輪廓依然堅持圓滑。Windows中絕大部分為矢量字形,只需很小的字符采用點陣字形。【例5-46】Windows中,矢量字符由數(shù)學方程和參數(shù)點組成。第64頁 共108頁5.2.2 漢字字符編碼【擴展】矢量字形。矢量字形=計算公式+字形參數(shù)計算公式:描畫函數(shù)、直線方程、

36、B樣條Bezier曲線擬合公式等字形參數(shù):基點、基線、錨點、控制點、寬度、角度、顏色等矢量字符顯示:查找字符 取出參數(shù) 計算字形 顯示字符第65頁 共108頁5.2.2 漢字字符編碼3True Type矢量字形True Type是Apple和Microsoft公司提出的字形技術。TT是用函數(shù)描畫字體輪廓外形的指令集合。TT指令包括:字型構造,顏色填充,描畫函數(shù),條件控制,提示信息,控制指令等。TT采用二次B樣條曲線和直線方程描畫字形外部輪廓。Windows矢量字庫保管在C:Windowsfonts目錄下;如,文件擴展名為FON,表示是點陣字庫;如,文件擴展名為TTF,表示是矢量字庫。第66頁

37、共108頁5.2.2 漢字字符編碼Windows中矢量字形與點陣字形的顯示效果如圖5-28所示。第67頁 共108頁 第5章 信息編碼1.1.1 計算機的開展第68頁 共108頁5.2.3 一致字符編碼1、國際通用字符集1Unicode一致碼字符集Unicode是一種國際通用字符編碼規(guī)范。Unicode目的:收錄世界上一切言語的文字和符號;對每個字符定義一個值代碼點;代碼點可用2字節(jié)表示UCS-2,也可用4字節(jié)表示UCS-4。Unicode字符稱號=代碼點值前面加上“U+。如,字符“A的稱號是“U+0041。Unicode和UCS獲得了網(wǎng)絡、操作系統(tǒng)、編程言語等廣泛支持。如,Windows N

38、T/2000/XP/7/8、Linux等。第69頁 共108頁5.2.3 一致字符編碼2UCS-2通用字符集UCS-2是ISO國際規(guī)范化組織和Unicode共同定義的國際通用字符集。UCS-2代碼長度固定為2個字節(jié)16位。英文符號在ACSII碼前面加一個代碼點為0的字節(jié)。如,“A的ASCII碼為41H,它的UCS-2代碼點為U+0041H。UCS-2優(yōu)點:亞洲字符的存儲空間比UTF-8編碼少;處置字符的速度比UTF-8編碼快,由于編碼長度是固定的;對Windows和Java的支持更好。Windows 2000/XP/7/8在系統(tǒng)內部運用UCS-2字符集,必要時轉換為ASCII碼。第70頁 共1

39、08頁5.2.3 一致字符編碼2、Unicode字符的存儲和傳輸問題1“大端與“小端字節(jié)序斯威夫特中,小人國的內戰(zhàn)源于吃雞蛋時是終究從大端敲開還是從小端敲開,由此曾發(fā)生過六次叛亂,其中一個皇帝送了命,另一個丟了王位。第71頁 共108頁5.2.3 一致字符編碼字符編碼在存儲和傳輸中,同樣遇到了“大端與“小端的問題。如,“漢字Unicode編碼是U+6C49,寫入文件時,假設將“6C寫在前面,就是大端字節(jié)序BE,高位在前;假設將“49寫在前面,就是小端字節(jié)序LE,低位在前。x86計算機中,數(shù)據(jù)存儲和傳輸采用“小端字節(jié)序;在蘋果計算機中,采用“大端字節(jié)序。第72頁 共108頁5.2.3 一致字符編

40、碼【例5-47】字符串“Hello在Unicode編碼中;大端字節(jié)序是:U+0048 U+0065 U+006C U+ 006C U+006F小端字節(jié)序為:U+4800 U+6500 U+6C00 U+6C00 U+6F00第73頁 共108頁5.2.3 一致字符編碼2UBOM存儲方式計算機在不清楚“大端或“小端的情況下,如何進展數(shù)據(jù)解析呢?處理方法:在每個Unicode字符串的最前面;用“FE FF表示大端字節(jié)序BE;用“FF FE表示小端字節(jié)序LE;“FE FF是不存在的字符編碼,不會出現(xiàn)編碼沖突問題。第74頁 共108頁5.2.3 一致字符編碼3、UTF-16編碼1UTF-16編碼方法U

41、TF-16是采用Unicode字符集的編碼方法。UCS-2編碼固定2個字節(jié)表示一個字符,一共可表示216=65 535個字符。Unicode 4.0規(guī)范定義了一組附加字符編碼,附加字符用4個字節(jié)表示,Unicode 4.0定義了45 960個附加字符。UTF-16編碼=UCS-2字符集+附加字符UTF-16編碼可用2個字節(jié)表示,也可用4個字節(jié)表示。UTF-16編碼主要用于Windows 2000/XP/7/8操作系統(tǒng)。第75頁 共108頁5.2.3 一致字符編碼2UTF-16編碼案例例如,“中國字符的各個版本UTF-16編碼如表5-8所示。編碼標準“中國”字符的編碼序列說明UTF-16BE4E

42、 2D 56 FD大端字節(jié)序編碼UTF-16LE2D 4E FD 56小端字節(jié)序編碼UTF-16(BOM,BE)FE FF 4E 2D 56 FD字節(jié)序標示符+大端編碼UTF-16(BOM,LE)FF FE 2D 4E FD 56字節(jié)序標示符+小端編碼第76頁 共108頁5.2.3 一致字符編碼【擴展】Unicode編碼圖第77頁 共108頁5.2.3 一致字符編碼4、UTF-8編碼1UCS-2編碼對存儲空間的浪費UCS-2編碼需求在ACSII碼前加一個0字節(jié)碼 ;這樣,英文系統(tǒng)就會出現(xiàn)大量為0的字節(jié)。美國程序員無法忍受這種存儲空間翻倍;傳輸時間翻倍的浪費;這些程序員選擇忽略Unicode字符

43、集,這讓事情變得更加糟糕。處理的方法是采用UTF-8編碼。第78頁 共108頁5.2.3 一致字符編碼2UTF-8編碼方法UTF-8設計思想: 不修正那些沒有壞或不夠好的東西,只修正出問題的部分。UTF-8編碼方法:0127之間的碼字運用1個字節(jié)存儲;超越128的碼字運用24個字節(jié)存儲。UTF-8編碼的長度是可變的。ASCII碼與UTF-8碼完全一致,處理了美國程序員的煩惱。【例5-48】字符“中的編碼。UTF-8碼占3個字節(jié),編碼為“E4 B8 AD;UTF-16編碼為“4E 2D,2個字節(jié);GBK編碼為“D6 D0,2個字節(jié)。第79頁 共108頁5.2.3 一致字符編碼3UTF-8編碼的優(yōu)

44、點對歐洲字符只需較少的存儲空間;兼容ASCII碼,容易從ASCII碼向UTF-8遷移;與字節(jié)順序無關,可以在不同平臺之間交流;容錯才干高,不會產(chǎn)生連鎖錯誤如亂碼。類UNIX系統(tǒng)普遍采用UTF-8字符集;如,Linux系統(tǒng)默許的字符編碼是UTF-8;如,HTML和大多數(shù)閱讀器也支持UTF-8。第80頁 共108頁5.2.3 一致字符編碼【擴展】各種不同言語文字中,字符“他好的編碼。語言文種編碼標準字符集大小文字樣例簡體中文GB2312-806763你好、中國漢語繁體中文BIG-513053你好、中國漢語藏文Unicode592 (扎西德勒)日文SJIS6524(空寧尼其哇)韓文KSC560172

45、38(啊寧哈塞優(yōu))英文ASCII128How are you俄文Windows 1251256(的比哦捏特)阿拉伯文Unicode193?迀 ?text(埃瑟蘭姆-啊累依庫姆)第81頁 共108頁 第5章 信息編碼1.1.1 計算機的開展第82頁 共108頁5.2.4 聲音數(shù)字化處置聲音、圖形、視頻等信息,需求轉換成二進制數(shù)后計算機才干存儲和處置。將模擬信號轉換成二進制數(shù)的過程稱為數(shù)字化處置。1、聲音的數(shù)字化過程自然聲音是延續(xù)變化的模擬量。如,對著話筒講話時,話筒根據(jù)周圍空氣壓力的變化,輸出延續(xù)變化的電壓值。模擬音頻信號地數(shù)字化過程如圖5-30所示。第83頁 共108頁5.2.4 聲音數(shù)字化處

46、置【擴展】缺點聲音的頻率。超聲波超聲波女性語音女性語音語音語音調幅廣播調幅廣播(AM)調頻廣播調頻廣播(FM)高級音響高級音響男性語音男性語音第84頁 共108頁5.2.4 聲音數(shù)字化處置1采樣模擬信號轉換成數(shù)字信號必需經(jīng)過采樣過程。采樣:在固定時間間隔內,對模擬音頻信號截取振幅值。單位時間內采樣次數(shù)采樣頻率越多,數(shù)字信號就越接近原聲。奈奎斯特采樣定理: 采樣頻率到達信號最高頻率的2倍時,可以無失真地恢復原信號。人耳聽力范圍在20Hz20kHz之間。采樣頻率到達: 20kHz2=40kHz,就可以滿足采樣要求。目前聲卡采樣頻率到達了44.1kHz或更高。第85頁 共108頁5.2.4 聲音數(shù)字

47、化處置【案例】音頻信號的采樣與量化處置。第86頁 共108頁5.2.4 聲音數(shù)字化處置2量化量化:將信號延續(xù)取值為有限多個離散值。量化精度普通用二進制數(shù)衡量。如聲卡量化位數(shù)為16位,有216=65 535種量化等級。聲卡大多為24位或32位量化精度。3編碼將采集的原始數(shù)據(jù),按文件類型如WAV、MP3等編碼;再加上音頻文件的頭部,就得到了一個數(shù)字音頻文件。編碼任務由聲卡和音頻處置軟件如Adobe Audition共同完成。第87頁 共108頁5.2.4 聲音數(shù)字化處置【擴展】模擬電視信號的數(shù)字化。第88頁 共108頁5.2.4 聲音數(shù)字化處置2、聲音信號的輸入與輸出數(shù)字音頻信號可經(jīng)過網(wǎng)絡、光盤、數(shù)字話筒、MIDI接口等輸入計算機。模擬音頻信號輸入計算機后,由聲卡轉換為數(shù)字信號;這一過程稱為“模/數(shù)轉換A/D。播放音頻 播放軟件 音頻解緊縮 音頻芯片 , 模擬音頻信號這一過程稱為“數(shù)/模轉換D/A。第89頁 共108頁5.2.4 聲音數(shù)字化處置【擴展】個人音樂任務

溫馨提示

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

評論

0/150

提交評論