真值原碼反碼補碼詳解和習(xí)題_第1頁
真值原碼反碼補碼詳解和習(xí)題_第2頁
真值原碼反碼補碼詳解和習(xí)題_第3頁
真值原碼反碼補碼詳解和習(xí)題_第4頁
真值原碼反碼補碼詳解和習(xí)題_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

原碼 反碼和補碼的概念原碼 反碼和補碼的概念 本節(jié)要求 掌握原碼 反碼 補碼的概念 知識精講知識精講 數(shù)值型數(shù)據(jù)的表示按小數(shù)點的處理可分為定點數(shù)和浮點數(shù) 按符號位有原碼 反碼和補碼三種形式 的機器數(shù) 一 計算機中數(shù)據(jù)的表示方法一 計算機中數(shù)據(jù)的表示方法 1 數(shù)的定點與浮點表示 數(shù)的定點與浮點表示 在計算機內(nèi)部 通常用兩種方法來表示帶小數(shù)點的數(shù) 即所謂的定點數(shù)和浮點數(shù) 定點數(shù) 是小數(shù)點在數(shù)中的位置是固定不變的數(shù) 數(shù)的最高位為符號位 小數(shù)點可在符號位之后 也可在數(shù)的末尾 小數(shù)點本身不需要表示出來 它是隱含的 缺點 只有純小數(shù)或整數(shù)才能用定點數(shù)表示 浮點數(shù) 小數(shù)點在數(shù)中的位置是浮動的 不固定的數(shù) 一般浮點數(shù)既有整數(shù)部分又有小數(shù)部分 通常對于任何一個二進(jìn)行制數(shù) 總可以表示成 P S 均為二進(jìn)制數(shù) 為 的階碼階碼 一般為定點整數(shù) 常用補碼表示 階碼指明小數(shù)點在數(shù)據(jù)中的位置 它決定浮點的表示范 圍 為 N 的尾數(shù)尾數(shù) 一般為定點小數(shù) 常用補碼或原碼表示 尾數(shù)部分給出了浮點數(shù)的有效數(shù)字位數(shù) 它決定 了浮點數(shù)的精度 且規(guī)格化浮點數(shù) 0 5 S 0 1B 1 2 D 2 1 D 0 11B 1 2 1 4 D 2 1 2 2 D 0 111B 1 2 1 4 1 8 D 2 1 2 2 2 3 D 在計算機中表示一個浮點數(shù)其結(jié)構(gòu)為 階碼部分 尾數(shù)部分 階符階數(shù)尾符尾數(shù) Ef E1E2 Em Sf S1S2 Sn 假設(shè)用八個二進(jìn)制位來表示一個浮點數(shù) 且階碼部分占 4 位 其中階符占一位 尾數(shù)部分占 4 位 尾符也占一位 若現(xiàn)有一個二進(jìn)制數(shù) N 2 可表示為 110 0 1011 則該數(shù)在機器內(nèi)的表示形式為 B 10110B 21 D B 1011B 22 D B 101 1B 23 D B 10 11B 24 D B 1 011B 25 D B 0 1011B 26 D 0 1011B 2110 B 011001101 一個浮點形式的尾數(shù) S 若滿足 0 5 S 1 且尾數(shù)的最高位數(shù)為 1 無無效的 0 則該浮點數(shù)稱為規(guī) 格化數(shù) 規(guī)格化數(shù)可以提高運算的精度 S 為原碼表示 則 S 1 規(guī)格化數(shù) S 為補碼表示 N 為正數(shù) 則 S1 N 為負(fù)數(shù) 則 S1 二 原碼 反碼和補碼二 原碼 反碼和補碼 1 機器數(shù)與真值 機器數(shù)機器數(shù) 在計算機中數(shù)據(jù)和符號全部數(shù)字化 最高位為符號位 且用 0 表示正 1 表示負(fù) 那么把包 括符號在內(nèi)的一個二進(jìn)制數(shù)我們稱為機器數(shù) 機器數(shù) 機器數(shù) 有原碼 反碼和補碼三種表示方法 有原碼 反碼和補碼三種表示方法 比如 十進(jìn)制中的數(shù) 3 計算機字長為 8 位 轉(zhuǎn)換成二進(jìn)制就是 如果是 3 就是 那么 這里的 和 就是機器數(shù) 真值真值 用 號表示的二進(jìn)制數(shù) 機器數(shù)因為第一位是符號位 所以機器數(shù)的形式值就不等于真正的數(shù)值 例如上面的有符號數(shù) 其 最高位 1 代表負(fù) 其真正數(shù)值是 3 而不是形式值 131 轉(zhuǎn)換成十進(jìn)制等于 131 所以 為區(qū)別起見 將 帶符號位的機器數(shù)對應(yīng)的真正數(shù)值稱為機器數(shù)的真值 例 0000 0001 的真值 000 0001 1 1000 0001 的真值 000 0001 1 2 原碼 反碼和補碼的概念 1 1 概念 概念 機器數(shù) 機器數(shù) 有原碼 反碼和補碼三種表示方法 有原碼 反碼和補碼三種表示方法 原碼原碼 是最簡單的機器數(shù)表示法 其數(shù)符位用 0 表示正 1 表示負(fù) 其余各位表示真值本身 即用第一位表示符號 其余位表示值 比如如果是 8 位二進(jìn)制 1 的原碼是 1 的原碼是 反碼反碼 正數(shù)的反碼同原碼 負(fù)數(shù)的反碼為除符號位外 其它各位按位取反 正數(shù)的反碼是其本身 負(fù)數(shù)的反碼是在其原碼的基礎(chǔ)上 符號位不變 其余各個位取反 1 的反碼是 1 的反碼是 補碼補碼 正數(shù)的補碼同原碼 負(fù)數(shù)的補碼為反碼加 1 負(fù)數(shù)的補碼是在其原碼的基礎(chǔ)上 符號位不變 其余各位取反 最后 1 1 的補碼是 1 的補碼是 2 轉(zhuǎn)換方法 當(dāng)真值為正數(shù)真值為正數(shù)時 原碼 反碼 補碼原碼 反碼 補碼 3 種機器數(shù)的最高位均為最高位均為 0 當(dāng)真值為負(fù)數(shù)真值為負(fù)數(shù)時 原碼 反碼 補碼原碼 反碼 補碼 3 種機器數(shù)的最高位均為最高位均為 1 機器數(shù)的最高位為符號位最高位為符號位 其它位稱為數(shù)值位其它位稱為數(shù)值位 當(dāng)真值為正數(shù)真值為正數(shù)時 原碼原碼 反碼反碼 補碼補碼 當(dāng)真值為負(fù)數(shù)真值為負(fù)數(shù)時 三種機器數(shù)的符號位相同 均為 1 原碼的數(shù)值位保持 原 樣 反碼的數(shù)值位是 原碼數(shù)值位的 按位取反 補碼的數(shù)值位是原碼的數(shù)值位的 按位取反 后再加 1 簡稱 取反加 1 當(dāng)真值為負(fù)數(shù)真值為負(fù)數(shù)時 補碼補碼 反碼反碼 1 當(dāng)真值為負(fù)數(shù)真值為負(fù)數(shù)時 原碼原碼 補碼補碼 取補 補碼補碼 原碼原碼 取補 x 補 模 x 補 x 補 模 x 補 比如 8bit 模 28 1 0000 0000 例如 1 假設(shè)碼長為 8 位 寫出下列數(shù)的原碼 反碼和補碼 根據(jù)本題可得到結(jié)論 0 的原碼 反碼各有兩種表示方法 而補碼是唯一的全 0 表示 真值 0 0 1 1 127 127 128 原碼溢出 反碼溢出 補碼 2 假設(shè)碼長為 8 位 寫出原碼 反碼和補碼所能表示定點整數(shù)和定點小數(shù)的范圍 二進(jìn)制定點整數(shù)十進(jìn)制定點整數(shù)n 位可表示的個數(shù)二進(jìn)制定點小數(shù)十進(jìn)制定點小數(shù) 原 碼 127 127 2n 1 個個 1 0 127 128 127 12 8 反 碼 127 127 2n 1 個個 1 0 127 128 127 12 8 補 碼 128 127 128 代替了 0 2n個個 1 0 1 127 128 由此可見 n 位的二進(jìn)制數(shù)用原碼表示 則可表示的數(shù)的個數(shù)為 2n 1 個 n 位的二進(jìn)制數(shù)用反碼表示 則可表示的數(shù)的個數(shù)為 2n 1 個 n 位的二進(jìn)制數(shù)用補碼表示 則可表示的數(shù)的個數(shù)為 n個 比如 補碼中用 128 代替了 0 編程中常用到的 32 位 int 類型 可以表示范圍是 231 231 1 因為第一位表示的是符號位 而使 用補碼表示時又可以多保存一個最小值 2G 2G 1 3 算術(shù)運算 算術(shù)運算 計算機中的算術(shù)運算一般可采用補碼進(jìn)行 用補碼表示的兩個操作數(shù)進(jìn)行算術(shù)運算 符號位可直接參 加運算 結(jié)果仍為補碼 定點補碼加法運算 運算規(guī)則 x y 補 x 取補 y 補 定點補碼減法運算 運算規(guī)則 x y 補 x y 補 x 補 y 補 y 補 補的求法是將 y 補的各位 包括符號位 包括符號位 全取反 最末位加 即將 y 補連同符號位一起取反加 1 便可得到 y 補 x 補 模 x 補 x 補 模 x 補 比如 8bit 模 28 如 y 補 則 y 補 1 補 28 1 補 1 0000 0000 0000 0001 1111 1111 y 補 0100 則 y 補 1100 1 補 28 1 補 1 0000 0000 1111 1111 0000 0001 注意 在進(jìn)行運算時有時會發(fā)生溢出 定點補碼運算的溢出處理 采用補碼運算時若結(jié)果的數(shù)值超出了補碼所能表示的范圍 則此種情況稱為溢出 采用補碼運算時若結(jié)果的數(shù)值超出了補碼所能表示的范圍 則此種情況稱為溢出 若計算結(jié)果比能表示的最大數(shù)還大則稱為上溢 上溢時一般作溢出中斷處理 若計算結(jié)果比能表示的最小數(shù)還小則稱為下溢 下溢時一般作機器零處理 下面介紹用雙符號判斷溢出方法 引入兩個符號位Cs 1 Cs Cs 1用來表示兩個符號位向更高位進(jìn)位時的狀態(tài) 有進(jìn)位時Cs 1 1 無進(jìn)位時Cs 1 0 Cs用來表示兩數(shù)值的最高位向符號位進(jìn)位時的狀態(tài) 有進(jìn)位時Cs 1 無進(jìn)位時Cs 0 當(dāng)Cs 1Cs 00 或 11 時 無溢出 當(dāng)Cs 1Cs 01 或 10 時 有溢出 當(dāng)雙符號位為 01 時正溢出 當(dāng)雙 符號位為 10 時負(fù)溢出 例如 x 補 y 補 則 x y 補 溢出 因為Cs 1Cs 10 故溢出邏輯表達(dá)式為 V Cs 1 Cs 無符號數(shù)的運算 無符號數(shù)的運算實際上是指參加運算的操作數(shù) X Y 均為正數(shù) 且整個字長全部用于表示數(shù)值部分 當(dāng)兩個無符號數(shù)相加時 其值在字長表示的范圍內(nèi) 其結(jié)果為正數(shù) 當(dāng)兩個無符號數(shù)相減時 其值的符號位取決于兩數(shù)絕對值的大小 另外 地址在計算機中用無符號數(shù)表示 四原碼四原碼 反碼反碼 補碼再深入補碼再深入 計算機巧妙地把符號位參與運算 并且將減法變成了加法 背后蘊含了怎樣的數(shù)學(xué)原理呢 將鐘表想象成是一個 1 位的 12 進(jìn)制數(shù) 如果當(dāng)前時間是 6 點 我希望將時間設(shè)置成 4 點 我們可以 1 往回?fù)?2 個小時 6 2 4 2 往前撥 10 個小時 6 10 mod 12 4 3 往前撥 10 12 22 個小時 6 22 mod 12 4 2 3 方法中的 mod 是指取模操作 16 mod 12 4 即用 16 除以 12 后的余數(shù)是 4 所以鐘表往回?fù)?減法 的結(jié)果可以用往前撥 加法 替代 現(xiàn)在的焦點就落在了如何用一個正數(shù) 來替代一個負(fù)數(shù) 上面的例子我們能感覺出來一些端倪 發(fā) 現(xiàn)一些規(guī)律 但是數(shù)學(xué)是嚴(yán)謹(jǐn)?shù)?不能靠感覺 首先介紹一個數(shù)學(xué)中相關(guān)的概念 同余 模模 是指一個計量系統(tǒng)的計數(shù)范圍是指一個計量系統(tǒng)的計數(shù)范圍 例如 時鐘的計量范圍是 0 11 模 12 表示 n 位的計算機計量范圍是 0 2n 1 模 2n 模模 實質(zhì)上是計量器產(chǎn)生實質(zhì)上是計量器產(chǎn)生 溢出溢出 的量的量 它的值在計量器上表示不出來 計量器上只能表示出模的余計量器上只能表示出模的余 數(shù)數(shù) 任何有模的計量器 均可化減法為加法運算 比如 時鐘 模 12 中 加 8 和減 4 效果是一樣的 因此凡是減 4 運算 都可以用加 8 來代替 對時鐘 模 12 而言 8 和 4 互為補數(shù) 以 12 模的系統(tǒng)中 11 和 1 10 和 2 9 和 3 7 和 5 6 和 6 都互為補數(shù) 共同的特點是兩者相加等于模 對于計算機 其概念和方法完全一樣 n 位計算機 設(shè) n 8 所能表示的最大數(shù)是 若再加 1 稱為 9 位 但因只有 8 位 最高位 1 自然丟失 又回了 所以 8 位二進(jìn)制系統(tǒng)的模為 28 在這樣的系統(tǒng)中減法問題也可以化成加法問題 只需把減數(shù)用相應(yīng)的補數(shù)表示就可以了 x 補 模 x 補 x 補 模 x 補 比如 8bit 模 28 1 補 28 1 補 1 0000 0000 0000 0001 1111 1111 1 補 28 1 補 1 0000 0000 1111 1111 0000 0001 把補數(shù)用到計算機對數(shù)的處理上 就是把補數(shù)用到計算機對數(shù)的處理上 就是補碼補碼 負(fù)數(shù)取模負(fù)數(shù)取模 x mod y x y int x y int x y VB 語法表示 不大于 x y 的最大整數(shù) 即向下取整 int 1 5 2 Fix 1 5 1 舉例 3 mod 2 3 2 int 3 2 3 2 2 3 2x 2 1 同余的概念同余的概念 兩個整數(shù) a b 若它們除以整數(shù) m 所得的余數(shù)相等 則稱 a b 對于模 m 同余 記作 a b mod m 讀作 a 與 b 對于模 m 同余 舉例說明 4 mod 12 4 16 mod 12 4 28 mod 12 4 所以 4 16 28 對于模 12 同余 兩個定理兩個定理 1 反身性 a a mod m 自己和自己 對于模 m 同余 2 線性運算定理 如果 a b mod m c d mod m 那么 1 a c b d mod m 2 a c b d mod m 3 傳遞性 若 a b mod m b c mod m 則 a c mod m 典型例題典型例題 一 選擇題 1 一個四位二進(jìn)制補碼的表示范圍是 A 0 15 B 8 7 C 7 7 D 7 8 2 10 題 十進(jìn)制數(shù) 48 用補碼表示為 A B C D 分析 求某個負(fù)數(shù)的補碼 可利用模的定義 所以求 48 的補碼 只需求 80 的原碼即可 因為 48 80 128 而 80 原 故選 B 注 傳統(tǒng)做法是在原碼的基礎(chǔ)上 取反加 1 答案 B 3 09 年鎮(zhèn)江三模 如果 X 為負(fù)數(shù) 由 x 補求 x 補是將 A x 補各值保持不變 B x 補符號位變反 其他各位不變 C x 補除符號位外 各位變反 末位加 1 D x 補連同符號位一起各位變反 末位加 1 分析 不論 X 是正數(shù)還是負(fù)數(shù) 由 X 補求 X 補的方法是對 X 補求補 即連同符號位一起按位取反 末位加 答案 D 二 二 判斷題判斷題 1 計算機中一個浮點數(shù) N 可用 P S 表示 那么用規(guī)格化數(shù)表示 則尾數(shù) S 必須滿足 0 5 S 1 答案答案 對對 解題指導(dǎo)解題指導(dǎo) 一個浮點形式的尾數(shù) S 若滿足 0 5 S 1 且尾數(shù)的最高位數(shù)為 1 無無效的 0 則該 浮點數(shù)稱為規(guī)格化數(shù) 規(guī)格化數(shù)可以提高運算的精度 三 三 填空題填空題 1 二進(jìn)制數(shù) 的規(guī)格化數(shù)為 01100 二進(jìn)制數(shù) 11011 的規(guī)格化數(shù)為 10100 尾數(shù) 階碼均 用 8 位二進(jìn)制補碼表示 分析 可表示為 11011 2 1 即規(guī)格化數(shù)為 11011 2 1 11011 可表示為 11011 25 即規(guī)格化數(shù)為 11011 2101 2 已知 X Y 為兩個有符號數(shù)的定點整數(shù) 它們的補碼為 x 補 B y 補 B 則 X Y 補 B 分析 X Y 補 X 補 Y 補 X 為正數(shù) Y 為負(fù)數(shù) 故列式結(jié)果不溢出為 答案 原碼 反碼和補碼的概念當(dāng)堂練習(xí)原碼 反碼和補碼的概念當(dāng)堂練習(xí) 一 選擇題 1 機器數(shù) 80H 所表示的真值是 128 則該機器數(shù)為 形式的表示 A 原碼 B 反碼 C 補碼 D 移碼 2 在浮點數(shù)中 階碼 尾數(shù)的表示格式是 A 階碼定點整數(shù) 尾數(shù)定點小數(shù) B 階碼定點整數(shù) 尾數(shù)定點整數(shù) C 階碼定點小數(shù) 尾數(shù)定點整數(shù) D 階碼定點小數(shù) 尾數(shù)定點小數(shù) 3 已知 x 補 y 補 則 x y 補的結(jié)果是 A 溢出 B C D 4 某機字長 8 位 含一位數(shù)符 采用原碼表示 則定點小數(shù)所能表示的非零最小正數(shù)為 A 2 9 B 2 8 C 1 D 2 7 5 08 年 下列數(shù)中最小的數(shù)是 C A 原B 反C 補D 2 6 12 年 8 位補碼表示的定點整數(shù)的范圍是 B A 128 128 B 128 127 C 127 128 D 127 127 7 11 年鹽城二模 已知 X 的補碼為 Y 的補碼為 則 X Y 的補碼為 A B C D 溢出 8 將 33 以單符號位補碼形式存入 8 位寄存器中 寄存器中的內(nèi)容為 A DFH B A1H C 5FH D DEH 9 在機器數(shù)的三種表示形式中 符號位可以和數(shù)值位一起參加運算的是 A 原碼 B 補碼 C 反碼 D 反碼 補碼 二 判斷題 1 16 位的補碼表示的定點整數(shù)的最小值是 32768 2 10 年南京二模 一個數(shù)在計算機中分別用原碼 反碼 補碼表示時一定各不相同 3 10 年常州三模 字長相同 定點法表示數(shù)的范圍比浮點法小 4 若用八位二進(jìn)制數(shù)來表示一個有符號數(shù) 則原碼 反碼和補碼表示的數(shù)的個數(shù)與范圍均相同 三 填空題 1 十進(jìn)制數(shù) 27 對應(yīng)的 8 位二進(jìn)制補碼為 2 11 年 已知 X Y 為兩個帶符號的定點整數(shù) 它們的補碼為 X 補 B Y 補 B 則 X Y 補 B 3 數(shù) x 的真值為 0 1011B 其原碼表示為 補碼表示為 4 八位定點整數(shù) 采用二進(jìn)制補碼表示時 所能表示真值的十進(jìn)制數(shù)的范圍是 5 09 年 已知 X 補 B Y 補 B 則 X Y 補 6 11 年 一個含有 6 個 1 2 個 0 的八位二進(jìn)制整數(shù)原碼 可表示的最大數(shù)為 7EH 用十六進(jìn)制表示 7 12 年 已知 X 補 B 則 X B 8 10 年鹽城二模 二進(jìn)制數(shù) 若看成純小數(shù) 且為補碼 則其對應(yīng)真值的十進(jìn)制數(shù)是 原碼 反碼和補碼的概念課后練習(xí)原碼 反碼和補碼的概念課后練習(xí) 一 選擇題一 選擇題 1 10 年鹽城二模 溢出 一般是指計算機在運算過程是產(chǎn)生的 A 數(shù)據(jù)量超過內(nèi)存容量 B 文件個數(shù)超過磁盤目錄區(qū)規(guī)定的范圍 C 數(shù)據(jù)超過了機器的位所能表示的范圍 D 數(shù)據(jù)超過了變量的表示范圍 2 設(shè)有二進(jìn)制數(shù) X 若采用 8 位二進(jìn)制數(shù)表示 則 X 補的結(jié)果是 A B C D 3 假設(shè)有一個 16 機的某存儲單元存放著數(shù) 01000 若該數(shù)作為原碼表示十進(jìn)制有符號整數(shù) 其 中最高位為符號位 時 其值為 A 55510 B 23368 C 18762 D 56136 4 計算機內(nèi)的數(shù)有浮點和定點兩種表示方法 一個浮點法表示的數(shù)由兩部分組成 即

溫馨提示

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

評論

0/150

提交評論