在計算機中文字的表示

2021-10-08 20:10:45 字數 3786 閱讀 6226

(1)不同的文字有不同的書寫格式,它們不能在計算機直接儲存

(2)為文字和符號編制的無二義性的二進位制**稱為文字編碼。

(3)常用的文字編碼有: ascii碼、 gb18030字符集、unicode編碼。

ascii碼:

american standard code for information interchange ,美國資訊交換標準碼,是一種基於羅馬字母表的一套計算機編碼系統;主要用於顯示現代英語和其他西歐語言。

ascii碼分為兩個集合:

128個字元的基本ascii碼和附加的128個字元的擴充ascii碼。

其中,基本ascii字符集包含: 96個可列印字元(比如:字母、數字、標點符號等)和32個控制字元。

ascii碼編碼規則

(1)計算機以1個位元組存放1個ascii碼字元;

(2) ascii碼用7位二進位制數對1個字元進行編碼;

(3) ascii碼每個位元組最高位為0 ;

(4) ascii可以表示27= 128個字元編碼。

例: "good!"的ascii編碼.

ascii碼編碼規律

(1) 0~ 9字元碼的高4位編碼為0011 ,低4位為

0000~ 1001 ;

(2)去掉高4位時,低4位正好是0~ 9的二進位制數。

注意

(1) ascii碼26個字母編碼是連續的;

(2)字母a~ z碼值對應的十進位制數為65~ 90 ;

(3)字母az碼值對應的十進位制數為97122;

(4)大寫字母第6位值為0,小寫字母第6位值為1;

(5)它們之間的ascii碼值十進位制形式相差32 ;

gb18030字符集

gb18030 ,即《資訊交換用漢字編碼字符集基本集的擴充》,是2023年3月17日發布的新的漢字編碼國家標準。

gb18030標準採用單位元組、雙位元組和四位元組三種方式對字元編碼。

unicode編碼

(1)一些傳統的編碼方式,無法支援多語言環境。

(2) unicode為每種語言中的每個字元設定統一並且唯一的二進位制編碼,以滿足跨語言、跨平台進行文字轉換和處理的要求。

(3) unicode是一種國際通用字元編碼標準。

(4)在表達乙個unicode的字元時,通常公用「u+"然後緊接著一組十六進製制的數字來表示字元。

unicode目標:

(1)收錄世界上所有語言的文字和符號;

(2)對每個字元定義乙個值(碼點);

(3)碼點可用2位元組表示( ucs-2 ) ,也可用4位元組表示( ucs-4 ) 。

ucs-2 (通用字符集)

(1) ucs- 2是iso (國際標準化組織)和unicode共同定義的國際通用字符集。

(2) ucs-2**長度固定為2個位元組( 16位)。

(3)英文符號在acsii碼前面加乙個**點為0的位元組。

(4)如:「a」的ascii碼為41h,它的ucs-2**點為u+0041h。

utf-8的編碼規則:

(1)對於單位元組的符號,位元組的第一位設為0 ,後面7位為這個符號的unicode碼,因此對於英語字母, utf- 8編碼和ascii碼是相同的;

(2)對於n位元組的符號( n>1),第一位元組的前n位都設為1 ,第n+ 1位設為0 ,後面位元組的前兩位一律設為10 ,剩下的沒有提及的二進位制位全部為這個符號的unicode碼。

嚴的unicode碼是4 e25(100111000100101) ,它處在表的第三行範圍內(00000800~0000 ffff) ,因此嚴的utf-8編碼需要3位元組,即格式是1110***x 10****** 10***x。從嚴的最後乙個二進位制位開始,依次從後向前填入格式中的x ,多出的位補0。得到嚴的utf-8編碼是11100100 10111000 10100101。

英文的輸入

(1)英文本元的輸入可以通過鍵盤直接完成。

(2)鍵盤擁有自己的處理器和傳輸資料的電路;這個電路的很大一部分組成了鍵矩陣,鍵矩陣是位於鍵下方的一種電路網格。

(3)每個電路在每個鍵所處的位置點下均處於斷開狀態。當按下某個鍵時,此按鍵將按下開關,從而閉合電路。一旦處理器發現某處電路閉合,就將該電路在鍵矩陣上的位置與其唯讀儲存器內的字元對映表進行對比。字元對映表會告訴處理器每個鍵在矩陣中的位置,以及每次擊鍵或者擊鍵組合所代表的含義,同時將該字元的ascii碼儲存於記憶體之中。

英文的儲存

英文本母輸入後,系統將在記憶體中儲存其對應的編碼。系統不同,採用的儲存編碼也會不同。

如:在windows中,字元儲存其對應的unicode編碼。

英文的輸出

每乙個字元的字形可被繪製在一乙個mx n點陣中。如下面兩個圖,左圖為字元"a"字形的8x8點陣表示,右圖為字元"a"的字形碼。

(1表示這個點亮了,0表是這個點沒亮。)

漢字的輸入

(1)漢字輸入編碼分為從音編碼和從形編碼中類。

(2)從音編碼以《漢語拼音方案》為基本編碼元素。如:智慧型abc、微軟拼音。

(3)從形編碼以筆畫和字根為編碼元素。如:五筆字體。

漢字的儲存

漢字輸入碼被接收後,轉換為機內碼。系統不同,其機內碼也不同。

如: windows中,漢字儲存的是其對應的unicode編碼。

漢子的輸出

第一種

(1)每乙個漢字都有相應的字形碼。

(2)目前,大多數漢字系統中都以點陣的方式來儲存和輸出漢字的字形。

(3)漢字字形點陣有16x16、24x24、 48x48.72x72等。點陣越大,列印質量就會越高。

(4)實際中,用得最多的是16x16點陣。乙個16x 16點陣的漢字字形碼需要用2x16=32位元組表示。

如下面兩個圖,左圖為漢子「跑」的32x32點陣,右圖為其字形碼。

第二種

向量字型:與點陣字型相對應的另-種字型;它的每個字形是通過數學方程來描述的;在乙個字形上分割出若干個關鍵點,相鄰關鍵點之間由一條有限個引數唯一確定的光滑曲線連線。

好處:

(1)向量字形儲存每個字元的數學描述資訊。如,筆劃的起始、終止座標,半徑、弧度等。

(2)顯示和列印向量字形時,要經過一系列的運算才能輸出結果。

(3)向量字形可以無限放大,筆劃輪廓仍然保持圓滑。

(4) windows中絕大部分為向量字形,只有很小的字元採用點陣字形。

負數在計算機中的表示

今天,老大讓我調查乙個浮點數轉換為整數的問題。自己就查了些資料,順便複習一下原碼 反碼和補碼。原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組...

負數在計算機中的表示

原碼 將乙個整數,轉換成二進位制,就是其原碼。如單位元組的5的原碼為 0000 0101 5的原碼為1000 0101。反碼 正數的反碼就是其原碼 負數的反碼是將原碼中,除符號位以外,每一位取反。如單位元組的5的反碼為 0000 0101 5的原碼為1111 1010。補碼 正數的補碼就是其原碼 負...

小數在計算機中的表示

執行如下 得到結果 你猜是多少呢?嗯你沒有看錯得到的答案是57.所以為什麼會出現這種情況呢?首先需要 的是0.58這個數字是如何在計算機中儲存的。我們一般用下面格式表示浮點數。sp m 其中s是符號位,p是階碼,m是尾數。單精度浮點數是32位,雙精度浮點數是64位。s pm表示公式 偏移量1823 ...