久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

原碼,、反碼,、補(bǔ)碼以及為什么要用反碼和補(bǔ)碼

 沙門(mén)空海 2017-07-28

原始博文網(wǎng)址,,無(wú)意侵權(quán),,只是想記下來(lái)以后復(fù)習(xí)的時(shí)候方便,

http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

機(jī)器數(shù)

一個(gè)數(shù)在計(jì)算機(jī)中的二進(jìn)制表示形式,叫做這個(gè)數(shù)的機(jī)器數(shù),機(jī)器數(shù)是帶符號(hào)的,在計(jì)算機(jī)中用一個(gè)數(shù)的最高位存放符號(hào),,正數(shù)為0,負(fù)數(shù)為1,,比如,,十進(jìn)制中的+3,假設(shè)計(jì)算機(jī)字長(zhǎng)為8位,,轉(zhuǎn)換成二進(jìn)制就是0000 0011,,如果是-3,就是1000 0011.那么,,這里0000 0011和1000 0011就是機(jī)器數(shù),,

真值

因?yàn)榈谝晃粸榉?hào)位,所以機(jī)器數(shù)的形式值就不等于真正的數(shù)值,,例如上面的有符號(hào)數(shù)1000 0011,,其最高位1代表負(fù),其真正數(shù)值是-3,而不是形式值131(1000 0011轉(zhuǎn)換成10進(jìn)制等于131),,所以為了區(qū)別起見(jiàn),,將帶符號(hào)的機(jī)器數(shù)對(duì)應(yīng)的真正數(shù)值稱為機(jī)器數(shù)的真值。例如:0000 0001的真值=+000 0001=+1,1000 0001的真值=-000 0001=-1

原碼:

原碼就是符號(hào)位加上真值的絕對(duì)值,,即用第一位表示符號(hào),,其余位表示值,比如如果是8位二進(jìn)制,,[+1]原=0000 0001.[-1]原=1000 0001.因?yàn)榈谝晃皇欠?hào)位,,所以8位二進(jìn)制的取值范圍就是:[1111 1111,0111 1111]即[-127,127],原碼是人腦最容易理解和計(jì)算的表示方式,。

反碼:

反碼的表示方法是:正數(shù)的反碼是其本身,,負(fù)數(shù)的反碼是在其原碼的基礎(chǔ)上,符號(hào)位不變,,其余各個(gè)位取反,,[+1]=[0000 0001]原= [0000 0001]反,[-1]=[1000 0001]原=[1111 1110]反,??梢?jiàn)如果一個(gè)反碼表示的是負(fù)數(shù),人腦無(wú)法直觀的看出來(lái)它的數(shù)值,,通常要將其轉(zhuǎn)換成原碼再計(jì)算,。

補(bǔ)碼:

補(bǔ)碼的表示方法是:正整數(shù)的二進(jìn)制補(bǔ)碼與其二進(jìn)制原碼相同,負(fù)整數(shù)的二進(jìn)制補(bǔ)碼,先求與該負(fù)數(shù)相對(duì)應(yīng)的正整數(shù)的二進(jìn)制代碼,,然后所有位取反加1,不夠位數(shù)時(shí)左邊補(bǔ)1,,例如,,[+1]=[0000 0001]原=[0000 0001]反=[0000 0001]補(bǔ),[-1]=[1000 0001]原=[1111 1110]反=[1111 1111]補(bǔ),,對(duì)于負(fù)數(shù),,補(bǔ)碼表示方式也是人腦無(wú)法直觀看出其數(shù)值的,通常也需要轉(zhuǎn)換成原碼再計(jì)算其數(shù)值,。

為什么要使用原碼反碼補(bǔ)碼,,

現(xiàn)在我們知道了計(jì)算機(jī)可以用原碼 反碼 補(bǔ)碼這三種編碼方式表示一個(gè)數(shù),對(duì)于正數(shù)因?yàn)槿N編碼方式都相同,,沒(méi)有什么好解釋的,,但是對(duì)于負(fù)數(shù),負(fù)數(shù)的原碼反碼補(bǔ)碼是完全不同的,,既然原碼才是被人腦直接識(shí)別并用于計(jì)算方式,,那么為什么還要用反碼和補(bǔ)碼呢,首先,,因?yàn)槿四X可以知道原碼的第一位是符號(hào)位,,在計(jì)算的時(shí)候,我們會(huì)根據(jù)符號(hào)位,,選擇對(duì)真值區(qū)域的加減,,但是對(duì)于計(jì)算機(jī),加減乘除已經(jīng)是最基礎(chǔ)的運(yùn)算,,要設(shè)計(jì)的盡量簡(jiǎn)單,,計(jì)算機(jī)辨別符號(hào)位顯然會(huì)讓計(jì)算機(jī)的基礎(chǔ)電路設(shè)計(jì)變得十分復(fù)雜,于是人們想出了將符號(hào)位也參與運(yùn)算的方法,,我們知道,,根據(jù)運(yùn)算法則減去一個(gè)正數(shù)等于加上一個(gè)負(fù)數(shù),即:1-1=1+(-1)=0,;所以機(jī)器可以只有加法而沒(méi)有減法,,這樣計(jì)算機(jī)運(yùn)算的設(shè)計(jì)就更簡(jiǎn)單了,那么如果用原碼計(jì)算,,1-1=1+(-1)=[0000 0001]原+[1000 0001]原=[1000 0010]原=-2.如果用原碼計(jì)算,,讓符號(hào)位也參與運(yùn)算,顯然對(duì)于減法來(lái)說(shuō),,結(jié)果是不正確的,,這也就是為什么計(jì)算機(jī)內(nèi)部不用原碼表示一個(gè)數(shù),為了解決原碼做減法的問(wèn)題出現(xiàn)了反碼,如果用反碼計(jì)算減法,,1-1=1+(-1)= [0000 0001]原+ [1000 0001]原=[0000 0001]反+[1111 1110反]=[1111 1111]反=[1000 0000]原=-0,,發(fā)現(xiàn)用反碼計(jì)算減法,結(jié)果的真值部分是正確的,,而唯一的問(wèn)題其實(shí)出現(xiàn)在0這個(gè)特殊的數(shù)值上,,雖然人們理解上+0和-0是一樣的,但是0帶符號(hào)是沒(méi)有任何意義的,,而且會(huì)有[0000 0000]原和[1000 0000]原兩個(gè)編碼表示0,;于是補(bǔ)碼的出現(xiàn),解決了0的符號(hào)以及兩個(gè)編碼的問(wèn)題:1-1=1+(-1)=[0000 0001]原+[1000 0001]原=[0000 0001]補(bǔ)+[1111 1111]補(bǔ)=[0000 0000]補(bǔ)=[0000 0000]原,,這樣0用[0000 0000]表示,,而以前出現(xiàn)的問(wèn)題-0則不存在了,而且可以用[1000 0000]表示-128,;(-1) + (-127) = [1000 0001]原 + [1111 1111]原 = [1111 1111]補(bǔ) + [1000 0001]補(bǔ) = [1000 0000]補(bǔ),。-1-127的結(jié)果應(yīng)該是-128, 在用補(bǔ)碼運(yùn)算的結(jié)果中, [1000 0000]補(bǔ) 就是-128. 但是注意因?yàn)閷?shí)際上是使用以前的-0的補(bǔ)碼來(lái)表示-128, 所以-128并沒(méi)有原碼和反碼表示.(對(duì)-128的補(bǔ)碼表示[1000 0000]補(bǔ)算出來(lái)的原碼是[0000 0000]原, 這是不正確的)。使用補(bǔ)碼, 不僅僅修復(fù)了0的符號(hào)以及存在兩個(gè)編碼的問(wèn)題, 而且還能夠多表示一個(gè)最低數(shù). 這就是為什么8位二進(jìn)制, 使用原碼或反碼表示的范圍為[-127, +127], 而使用補(bǔ)碼表示的范圍為[-128, 127].因?yàn)闄C(jī)器使用補(bǔ)碼, 所以對(duì)于編程中常用到的32位int類型, 可以表示范圍是: [-231, 231-1] 因?yàn)榈谝晃槐硎镜氖欠?hào)位.而使用補(bǔ)碼表示時(shí)又可以多保存一個(gè)最小值,。

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多