資料表示 運算與校驗

2022-08-17 11:57:19 字數 4256 閱讀 5498

進製計數制:

​ 數制的基與權:

在任一數制中,每乙個數字上允許使用的記數符號的個數被稱為該數制的基數。

每一位都對應1個表示該位在數碼中的位置的值,這個值就稱為數字的權值。

數值轉換:二進位制、十進位制、八進位制、十六進製制。

十進位制整數轉換為任意進製整數的規則是:除(以)基取餘;先余為低,後余為高;

十進位制小數轉換為任意進製小數的規則是:乘(以)基取整;先整為高,後整為低。 

二進位制轉換為八進位制:3位一組;

二進位制轉換為十六進製制:4位一組;

其他進製轉換為二進位制:按權展開相加法;

帶符號數的表示:

​ 數的符號表示規則:「0「表示正號」+「,」1「表示負號」-「

​ 二進位制數的碼制:原始碼、反碼、補碼和移碼。

規則:正數的原碼、反碼和補碼相同;

​ 負數的反碼是對原碼除符號位按位取反,補碼是原碼除符號位按位取反再加一;

​ 原碼:數值「0」有兩種原碼形式:[+0]原 = 0 0000000,[-0]原 = 1 0000000。

​ 反碼:數值「0」有兩種反碼形式:[+0]反 = 0 0000000,[-0]反 = 1 1111111。

​ 補碼(編碼定義:[x]補 = x + 2^n,n為編碼位數):數值「0」只有1種補碼形式:[+0]補 = [-0]補 = 0 0000000。

​ 移碼:移碼常用來表示浮點數的階碼。

階碼一般為整數,故移碼通常只用於表示整數。對定點整數x,它的移碼是:[x]移 = 2^(n-1)+x,其中-2^(n-1)

​ 規則:正數將原碼符號位變反,即得到移碼。負數將原碼連同符號位一起變反,末位再加1,即得到移碼(與變補等效)。補碼和移碼:符號相反、數值位相同。

浮點數表示原理:

​ 浮點表示中,小數點的位置可按需浮動。

格式模型:

字長為8位的原碼二進位制浮點數由5位階碼+3位尾數。

​ 相同字長時,浮點數的表示範圍更大、精度更高!

浮點數的機讀(儲存)格式:

r:階碼的底數,隱含約定為2。

e:階碼,定點整數,補碼或移碼表示,其位數決定了數值的範圍。

m:尾數,為定點小數,原碼或補碼表示,其位數決定著數的精度;數符表示數的正負。

字元表示方法:

​ ascii碼(字元總數:128)

​ 儲存寬度:7b(有效位) + 1b(奇偶校驗位) = 8b

漢字的輸入碼:

​ 包括:數字碼、拼音碼、字形碼

漢字的內碼:

​ 用於漢字資訊的儲存、交換、檢索等操作的計算機機內**,一般用兩個位元組表示。

​ 國標碼:10進製區位碼轉成16進製制,再加2020h;

​ 機內碼:國標碼+8080h(與ascii區別),或者區位碼轉成16進製制+a0a0h

漢字字模碼:

​ 字模碼用點陣表示的漢字字形碼,是漢字的輸出形式。

資料處理與儲存:

​ 移位操作:邏輯移位(數碼位置變化),算術移位(符號位不變、數碼位置變化)

數字擴充套件與壓縮:

​ 符號擴充套件:直接把符號位(0/1)填充到擴充套件位;

​ 0-擴充套件:高位均全補0(針對無符號數);

​ 位數壓縮:棄高位,留低位;

資料儲存(按位元組編址):

資料字的對齊:

​ 按邊界對齊、不按邊界對齊;

基本運算方法:

​ 定點數一般用補碼表示,符號位參加運算;

補碼的加減法:

運算流程:

邏輯實現:

溢位判斷:

溢位是指運算結果超出了數的表示範圍。僅當兩個符號相同的數相加或者兩個符號相異的數相減才可能產生溢位。

定點數加減法運算出現溢位時,運算結果是錯誤的。

補碼定點數加/減運算溢位判斷的三種方法

1)採用一位符號位:只需要參加操作的兩個數符號相同,結果又與運算元符號不同,則表示結果溢位;

2)採用雙符號位(也稱模4補碼):運算結果的兩個符號位相同,表示未溢位;運算結果的兩個符號位不同,表示溢位,此時最高位符號位代表真正的符號;

3)採用一位符號位,根據資料位的進製情況判斷溢位:符號位的進製 cs與最高位的進製c1相同,未溢位,否則溢位。

資料的校驗

奇偶校驗:

增設一位校驗位,從而使1的個數是奇或偶數。

​ 奇偶校驗不能發現偶數字錯,也無法定位錯誤。

海明校驗:

​  海明碼是一種多重分組奇偶檢驗;其原理是::在有效資訊位中加入幾個校驗位形 成海明碼,並把海明碼的每乙個二進位制位分配到幾個奇偶校驗組中。當某一位出錯後,就會 引起有關的幾個校驗位的值發生變化,這不但可以發現錯誤,還能指出錯誤的位置,為自動糾錯提供了依據。

將**組織為若干分組,每組進行奇偶檢驗;

​ 能夠檢驗是否出錯,也能定位出錯位;

迴圈冗餘校驗(crc碼):

​ 用待檢驗資料除以某個約定**,能除盡則表明資料正確,否則通過迴圈移位校正出錯位。

迴圈冗餘校驗碼編碼規律如下:

① 把待編碼的n位有效資訊表示為多項式m(x);

② 把m(x)左移k位,得到m(x)×xk,這樣空出了k位,以便拼裝k位餘數(即校驗位);

③ 選取乙個k+1位的產生多項式g(x),對m(x)×xk作模2除;

④ 把左移k位以後的有效資訊與餘數r(x)作模2加減,拼接為crc碼,此時的crc碼共有 n+k位。 

定點數的表示

在定點表示法中約定:所有資料的小數點位置固定不變。通常,把小數點固定在有效數 位的最前面或末尾,這就形成了兩類定點數:定點小數和定點整數。 

1.定點小數的表示範圍

定點小數即純小數,小數點的位置固定在最高有效數字之前,符號位之後。

2.定點整數的表示範圍

定點整數即純整數,小數點位置隱含固定在最低有效數字之後。

定點數的運算 

1.定點數的移位運算

定點數的移位運算包括算術移位、邏輯移位和迴圈移位。

算術移位:

算術移位的物件是帶符號數,在移位過程中必須保持運算元的符號不變。當左移一位時, 如不產生溢位,則數值 ×2;而右移一位時,如不考慮因移位捨去的末位尾數,則數值/2.

不同機器數算術移位後的空位添補規則

邏輯移位:

把運算元當成無符號數看待。

移位規則:邏輯左移時,高位移丟,低位添0;邏輯右移時,低位移丟,高位添0;不管左移還是右移都是添0。

迴圈移位:

特點:移出的數字又被移入資料之中。

大迴圈:帶進製標誌位cf;

小迴圈:不帶進製標誌位。

迴圈移位操作適合將資料的低位元組與高位元組資料互換

2.符號擴充套件 

在計算機算術運算中,有時必須將採用給定位數表示的數轉換成具有更多位數的某種表示形式。

正數的符號擴充套件非常簡單,原有形式的符號位移動到新形式的符號位上,新表示形式的所有附加位都用0進行填充。

負數的符號擴充套件方法則根據機器數的不同而不同。原碼表示負數的符號擴充套件方法與 正數相同,只不過此時符號位為1而已。補碼表示負數的擴充套件方法是:原有形式的符號位移動 到新形式的符號位上,新表示形式的所有附加位都用1進行填充。 

資料表示與校驗碼

資料表示與校驗碼在知識點中屬於初級必須掌握的範圍。在了解資料表示之前,我們先來看一下以下幾個概念。名稱定義 特例原碼 機器數的最高位數表示符號,其餘的數是數的絕對值,0代表正數,1代表負數。0有兩個原碼,0 00000000 0 10000000 反碼機器數最高位為符號,當最高位是0時,代表正數,其...

簡單I O 與資料表示

順便複習下資料型別吧 c中的基本資料型別有 short,int long 系列 unsigned 系列 float,double,long double 系列 char 在c 981標準中,上面的型別也一樣存在 當然,又加入了兩種新的資料型別 wchar t 寬字元型別 bool 布林型別 c 11...

BCD資料表示

2.13 bcd資料表示 雖然整數和浮點格式已經可以滿足一般程式的資料表示需求,但是在一些特殊的情況下,其他的數字表示方式更加方便一些。在本節中,我們將對二進位制編碼的十進位制 bcd 格式進行討論,因為80x86 cpu為這種資料表示方式提供了少量的硬體支援。bcd數值是由一些半位元組組成的序列,...