午夜精品人妻久久久-成年美女很黄的网站-在线看片免费人成视久网app-国产精品美女无遮挡一区二区-91精品国产综合久久久久-国产的免费视频又猛又爽又刺激-在线看片免费人成视久网app-久久香蕉国产精品视频-av一区二区三区高清

C語(yǔ)言編程之二進(jìn)制原碼、反碼和補(bǔ)碼

概述
在計(jì)算機(jī)內(nèi) , 有符號(hào)數(shù)有3種表示法:原碼、反碼和補(bǔ)碼 。
【C語(yǔ)言編程之二進(jìn)制原碼、反碼和補(bǔ)碼】在計(jì)算機(jī)中,數(shù)據(jù)是以補(bǔ)碼的形式存儲(chǔ)的,所以補(bǔ)碼在c語(yǔ)言的教學(xué)中有比較重要的地位,而講解補(bǔ)碼必須涉及到原碼、反碼 。
詳細(xì)釋義
所謂原碼就是二進(jìn)制定點(diǎn)表示法,即最高位為符號(hào)位 , “0”表示正,“1”表示負(fù),其余位表示數(shù)值的大小 。
反碼表示法規(guī)定:正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對(duì)其原碼逐位取反,但符號(hào)位除外 。
補(bǔ)碼表示法規(guī)定:正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加1 。
原碼、反碼和補(bǔ)碼的表示方法
定點(diǎn)整數(shù)表示法
定點(diǎn)小數(shù)小時(shí)法
反碼
正數(shù):正數(shù)的反碼與原碼相同 。
負(fù)數(shù):負(fù)數(shù)的反碼,符號(hào)位為“1”,數(shù)值部分按位取反 。
例如: 符號(hào)位 數(shù)值位
[+7]反= 0B
[-7]反= 1B
注意:
a. 數(shù)0的反碼也有兩種形式考勤系統(tǒng)的c語(yǔ)言源代碼,即
[+0]反=
[- 0]反=
b. 8位二進(jìn)制反碼的表示范圍:-127~+127
原碼
在數(shù)值前直接加一符號(hào)位的表示法 。
例如: 符號(hào)位 數(shù)值位
[+7]原= 0B
[-7]原= 1B
注意:
[+0]原=
[-0]原=
補(bǔ)碼
1)模的概念:把一個(gè)計(jì)量單位稱之為?;蚰?shù) 。
例如 , 時(shí)鐘是以12進(jìn)制進(jìn)行計(jì)數(shù)循環(huán)的 , 即以12為模 。在時(shí)鐘上 , 時(shí)針加上(正撥)12的整數(shù)位或減去(反撥)12的整數(shù)位,時(shí)針的位置不變 。
對(duì)于一個(gè)模數(shù)為12的循環(huán)系統(tǒng)來(lái)說(shuō),加2和減10的效果是一樣的;因此,在以12為模的系統(tǒng)中,凡是減10的運(yùn)算都可以用加2來(lái)代替,這就把減法問(wèn)題轉(zhuǎn)化成加法問(wèn)題了(注:計(jì)算機(jī)的硬件結(jié)構(gòu)中只有加法器,所以大部分的運(yùn)算都必須最終轉(zhuǎn)換為加法) 。
10和2對(duì)模12而言互為補(bǔ)數(shù) 。
同理 , 計(jì)算機(jī)的運(yùn)算部件與寄存器都有一定字長(zhǎng)的限制(假設(shè)字長(zhǎng)為8) , 因此它的運(yùn)算也是一種模運(yùn)算 。當(dāng)計(jì)數(shù)器計(jì)滿8位也就是256個(gè)數(shù)后會(huì)產(chǎn)生溢出,又從頭開始計(jì)數(shù) 。產(chǎn)生溢出的量就是計(jì)數(shù)器的模,顯然 , 8位二進(jìn)制數(shù),它的模數(shù)為2^8=256 。在計(jì)算中,兩個(gè)互補(bǔ)的數(shù)稱為“補(bǔ)碼” 。
2)補(bǔ)碼的表示:
正數(shù):正數(shù)的補(bǔ)碼和原碼相同 。
負(fù)數(shù):負(fù)數(shù)的補(bǔ)碼則是符號(hào)位為“1” 。并且,這個(gè)“1”既是符號(hào)位,也是數(shù)值位 。數(shù)值部分按位取反后再在末位(最低位)加1 。也就是“反碼+1” 。
例如: 符號(hào)位 數(shù)值位
[+7]補(bǔ)= 0B
[-7]補(bǔ)= 1B
補(bǔ)碼在微型機(jī)中是一種重要的編碼形式,請(qǐng)注意:
a. 采用補(bǔ)碼后,可以方便地將減法運(yùn)算轉(zhuǎn)化成加法運(yùn)算 , 運(yùn)算過(guò)程得到簡(jiǎn)化 。
正數(shù)的補(bǔ)碼即是它所表示的數(shù)的真值,而負(fù)數(shù)的補(bǔ)碼的數(shù)值部份卻不是它所表示的數(shù)的真值 。
采用補(bǔ)碼進(jìn)行運(yùn)算,所得結(jié)果仍為補(bǔ)碼 。
b. 與原碼、反碼不同 , 數(shù)值0的補(bǔ)碼只有一個(gè),即
[0]補(bǔ)= 。
若字長(zhǎng)為8位,則補(bǔ)碼所表示的范圍為-128~+127;進(jìn)行補(bǔ)碼運(yùn)算時(shí) , 應(yīng)注意所得結(jié)果不應(yīng)超過(guò)補(bǔ)碼所能表示數(shù)的范圍 。
原碼、反碼和補(bǔ)碼之間的轉(zhuǎn)換
由于正數(shù)的原碼、補(bǔ)碼、反碼表示方法均相同,不需轉(zhuǎn)換 。
在此,僅以負(fù)數(shù)情況分析 。
(1) 已知原碼,求補(bǔ)碼 。
例:已知某數(shù)X的原碼為,試求X的補(bǔ)碼和反碼
解:由[X]原=知,X為負(fù)數(shù) 。求其反碼時(shí) , 符號(hào)位不變,數(shù)值部分按位求反;求其補(bǔ)碼時(shí),再在其反碼的末位加1 。
1 0 1 1 0 1 0 0 原碼
1 1 0 0 1 0 1 1 反碼,符號(hào)位不變,數(shù)值位取反
1 1 0 0 1 1 0 0 補(bǔ)碼,符號(hào)位不變 , 數(shù)值位取反+1
故:[X]補(bǔ)=,[X]反= 。
(2) 已知補(bǔ)碼,求原碼 。
分析:按照求負(fù)數(shù)補(bǔ)碼的逆過(guò)程,數(shù)值部分應(yīng)是最低位減1考勤系統(tǒng)的c語(yǔ)言源代碼,然后取反 。但是對(duì)二進(jìn)制數(shù)來(lái)說(shuō),先減1后取反和先取反后加1得到的結(jié)果是一樣的,故仍可采用取反加1 有方法 。
例:已知某數(shù)X的補(bǔ)碼,試求其原碼 。
解:由[X]補(bǔ)=知,X為負(fù)數(shù) 。
1 1 1 0 1 1 1 0 補(bǔ)碼
1 1 1 0 1 1 0 1 反碼(符號(hào)位不變,數(shù)值位取反加1)
1 0 0 1 0 0 1 0 原碼(符號(hào)位不變,數(shù)值位取反)
關(guān)于補(bǔ)碼的補(bǔ)充例子:
一個(gè)正的整數(shù)的補(bǔ)碼就是這個(gè)整數(shù)變成二進(jìn)制的值 。
舉例:一個(gè)int型變量i=10,其二進(jìn)制補(bǔ)碼就是0 0 0000 1010()
2. 一個(gè)負(fù)整數(shù)的二進(jìn)制補(bǔ)碼 , 就是該負(fù)數(shù)的絕對(duì)值所對(duì)應(yīng)的補(bǔ)碼全部取反后加1.
舉例:int i=-10的補(bǔ)碼如何求得:
3. +0和-0的二進(jìn)制補(bǔ)碼都是0
原碼和反碼在數(shù)值0都有二意,唯有補(bǔ)碼在數(shù)值0是唯一的碼值!
本文到此結(jié)束,希望對(duì)大家有所幫助 。