導航:首頁 > 源碼編譯 > 機器數與源碼的區別

機器數與源碼的區別

發布時間:2023-12-24 01:24:39

『壹』 計算機內數的表示與編碼

2、機器數的表示方法

a、原碼

1、定義:正數的符號位用0表示,負數的符號位用1表示,數值部分用二進制形式表示,稱為該數的原碼。
比如: 則
X=+81 (X)原 =0 1010001
Y=-81 (Y)原 =1 1010001
符號位 數值
2、用原碼表示一個數簡單、直觀、方便。但不能用它對兩個同號數相減或兩個異號數相加。

比如:將十進制數「+36」與「-45」的原碼直接相加:
X=+36 (X)原 =00100100
Y=-45 (Y)原 =10101101

0 0 1 0 0 1 0 0……(+36)10+) 1 0 1 0 1 1 0 1……(-45)10
1 1 0 1 0 0 0 1……(-81)10
這顯然是不對的。

b、反碼

定義:正數的反碼和原碼相同,負數的反碼是對該數的原碼除符號位外各位取反,即「0」變「1」,「1」變「0」。

例如:X=+81,Y=-81

X)原 =0 1010001 (X)反= 0 1010001

Y)原 =1 1010001 (Y)反= 1 0101110
符號位 數值 符號位 數值

c、補碼

1、定義:正數的補碼與原碼相同,負數的補碼是對該數的原碼除符號外各位取反,然後加1,即反碼加1。
比如:X=+81,Y=-81 (X)原=(X)反=(X)補=01010001
(Y)原=11010001
(Y)反=10101110
(Y)補=10101111

2、計算機中,加減法基本上都採用補碼進行運算,並且加減法運算都可以用加法來實現。
比如:計算十進制數:36-45,可 寫成:36+(-45),即
(36)10 -(45)10 =(36)10+(-45)10
(36)原 =(36)反 = (36)補
= 00100100

(-45)原 = 10101101
(-45)反 = 11010010
(-45)補 = 11010011

0 0 1 0 0 1 0 0……(+36)10
+) 1 1 0 1 0 0 1 1……(-45)10
1 1 1 1 0 1 1 1……(-9)10
結果正確。

三、字元編碼

所謂字元編碼就是規定用怎樣的二進制編碼來表示文字和符號。它主要有以下幾種:1、BCD碼(二--十進制碼);2、ASCII碼;3、漢字編碼。

1、BCD碼(二--十進制碼):
把十進制數的每一位分別寫成二進制數形式的編碼,稱為二--十進制編碼或BCD編碼。BCD編碼方法很多,但常用的是8421編碼:它採用4 位二進制數表示1位十進制數,即每一位十進制數用四位二進製表示。這4位二進制數各位權由高到低分別是23、22、21、20,即8、4、2、1。這種編碼最自然,最簡單,且書寫方便、直觀、易於識別。

比如:十進制數1998的8421碼為:
0001 1001 1001 1000

十進制: 1 9 9 8
8421碼: 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0
位權: 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1

思考:
1、一個十進數的BCD碼如何轉換成十進制數?
2、一個十進制數的BCD碼是該數的 二進制數嗎?
3、一個十進制數的BCD碼與二進制數之間如何相互轉換?

2、ASCII碼

ASCII碼是計算機系統中使用得最廣泛的一種編碼(讀作阿斯克伊碼)。ASCII碼雖然是美國國家標准,但它已被國際標准化組織(ISO)認定為國際標准。ASCII碼已為世界公認,並在世界范圍內通用。ASCII碼有7位版本和8位版本兩種。國際上通用的是7位版本。7位版本的ASCII碼有128個元素,其中通用控制字元34個,阿拉伯數字10個,大、小寫英文字母52個,各種標點符號和運算符號32個。

比如:「A」的ASCII碼值為:1000001,即十進制的65;「a」的ASCII碼值為:1100001,即十進制的97;「0」的ASCII碼值為:0110000,即十進制的48。

3、漢字編碼

我國用戶在使用計算機進行信息處理時,都要用到漢字:漢字的輸入,輸出以及漢字處理。這就需要對漢字進行編碼。通常漢字有兩種編碼:國標碼和機內碼。
a、國標碼
計算機處理漢字所用的編碼標準是我國於1980年頒布的國家標准(GB2312-80),是國家規定的用於漢字編碼的依據,簡稱國標碼。
國標碼規定:用兩個位元組表示一個漢字字元。在國標碼中共收錄漢字和圖形符號7445個。
國標碼本身也是一種漢字輸入碼。通常稱為區位輸入法。

b、機內碼
機內碼是指在計算機中表示一個漢字的編碼。
機內碼是一種機器內部的編碼,其主要作用是作為漢字信息交換碼使用:將不同系統使用的不同編碼統一轉換成國標碼 ,使不同的系統之間的漢字信息進行交換。
正是由於機內碼的存在,輸入漢字時就允許用戶根據自己的習慣使用不同的漢字輸入法,比如:五筆字型、自然碼、智能拼音等,進入系統後再統一轉換成機內碼存儲。

(4)漢字編碼
西文是拼音文字,基本符號比較少,編碼比較容易,因此,在一個計算機系統中,輸入、內部處理、存儲和輸出都可以使用同一代碼。漢字種類繁多,編碼比拼音文字困難,因此在不同的場合要使用不同的編碼。通常有4種類型的編碼,即輸入碼、國標碼、內碼、字形碼。

① 輸入碼

輸入碼所解決的問題是如何使用西文標准鍵盤把漢字輸入到計算機內。有各種不同的輸入碼,主要可以分為三類:數字編碼、拼音編碼和字編型碼。

● 數字編碼。就是用數字串代表一個漢字,常用的是國標區位碼。它將國家標准局公布的6763個兩級漢字分成94個區,每個區分94位。實際上是把漢字表示成二維數組,區碼、位碼各用兩位十進制數表示,輸入一個漢字需要按4次鍵。數字編碼是惟一的,但很難記住。比如「中」字,它的區位碼以十進製表示為5448(54是區碼,48是位碼),以十六進製表示為3630(36是區碼,30是位碼)。以十六進製表示的區位碼不是用來輸入漢字的。

● 拼音編碼。是以漢字讀音為基礎的輸入方法。由於漢字同音字太多,輸入後一般要進行選擇,影響了輸入速度。

● 字型編碼。是以漢字的形狀確定的編碼,即按漢字的筆畫部件用字母或數字進行編碼。如五筆字型、表形碼,便屬此類編碼,其難點在於如何拆分一個漢字。

② 國標碼

又稱為漢字交換碼,在計算機之間交換信息用。用兩個位元組來表示,每個位元組的最高位均為0,因此可以表示的漢字數為214=16384個。將漢字區位碼的高位位元組、低位位元組各加十進制數32(即十六進制數的20),便得到國標碼。例如「中」字的國標碼為8680(十進制)或7468(十六進制)。這就是國家標准局規定的GB2312—80信息交換用漢字編碼集。

③ 內碼

漢字內碼是在設備和信息處理系統內部存儲、處理、傳輸漢字用的代碼。無論使用何種輸入碼,進入計算機後就立即被轉換為機內碼。規則是將國標碼的高位位元組、低位位元組各自加上128

為了統一表示世界各國的文字,1993年國際標准化組織公布了「通用多八位編碼字元集」的國際標准ISO/IEC 10646,簡稱UCS(Universal Code Set),它為包括漢字在內的各種正在使用的文字規定了統一的編碼方法。該標准使用4個位元組來表示一個字元。其中,一個位元組用來編碼組,因為最高位不用,故總共表示128個組。一個位元組編碼平面,總共有256個平面,這樣,每一組都包含256個平面。在一個平面內,用一個位元組來編碼行,因而總共有256行。再用一個位元組來編碼字位,故總共有256個字位。一個字元就被安排在這個編碼空間的一個字位上。例如ASCII字元「A」,它的ASCII為41H,而在UCS中的編碼則為00000041H,即位於00組、00面、00行的第41H字位上。又如漢字「大」,它在GB2312中的編碼為3473H,而在UCS中的編碼則為00005927H,即在00組、00面、59H行的第27H字位上。4個位元組的編碼足以包容世界上所有的字元,同時也符合現代處理系統的體系結構。

④ 字形碼

表示漢字字形的字模數據,因此也稱為字模碼,是漢字的輸出形式。通常用點陣、矢量函數等表示。用點陣表示時,字形碼指的就是這個漢字字形點陣的代碼。根據輸出漢字的要求不同,點陣的多少也不同。簡易型漢字為16�0�716點陣、提高型漢字為24�0�724點陣、48�0�748點陣等。現在我們以24�0�724點陣為例來說明一個漢字字形碼所要佔用的內存空間。因為每行24個點就是24個二進制位,存儲一行代碼需要3個位元組。那麼,24行共佔用3�0�724=72個位元組。計算公式:每行點數/8�0�7行數。依此,對於48�0�748的點陣,一個漢字字形需要佔用的存儲空間為48/8�0�748=6�0�748=288個位元組。

(十進制)或80(十六進制)。例如,「中」字的內碼以十六進製表示時應為F4E8。這樣做的目的是使漢字內碼區別於西文的ASCII,因為每個西文字母的ASCII的高位均為0,而漢字內碼的每個位元組的高位均為1。

閱讀全文

與機器數與源碼的區別相關的資料

熱點內容
科普中國app怎麼分享 瀏覽:85
51單片機與32單片機比較 瀏覽:416
SQL加密存儲解密 瀏覽:505
電氣工程師把程序加密 瀏覽:795
解壓切東西動畫版 瀏覽:963
點到橢圓的距離演算法 瀏覽:388
新的編譯系統 瀏覽:531
cad替換樣板命令 瀏覽:361
des演算法例子 瀏覽:388
怎麼隱藏系統app 瀏覽:522
怎麼在惠生活查詢定向app 瀏覽:272
windows程序設計核心編程 瀏覽:444
任我充app怎麼開發票 瀏覽:330
人工智慧與編程語言 瀏覽:406
linux網路編程伺服器 瀏覽:800
海爾32cw空調壓縮機電容多大 瀏覽:747
分區加密了該怎麼辦 瀏覽:103
索尼延時拍攝app怎麼導入 瀏覽:226
冰箱冷凍壞了壓縮機一直響 瀏覽:807
windows伺服器如何組建raid0 瀏覽:180