不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦 > 知識(shí)大全 > 知識(shí)百科 > 百科知識(shí) > 八位二進(jìn)制補(bǔ)碼最小值

八位二進(jìn)制補(bǔ)碼最小值

時(shí)間: 鞏詩(shī)754 分享

八位二進(jìn)制補(bǔ)碼最小值

  好吧,小編雖然上個(gè)C++語(yǔ)言和VB語(yǔ)言基礎(chǔ),雖然那個(gè)愛(ài)笑的從國(guó)外留學(xué)回來(lái)的老師講課很好很精彩,但無(wú)奈小編跟不上呀。所以下面是學(xué)習(xí)啦小編給大家總結(jié)的八位二進(jìn)制補(bǔ)碼最小值和二進(jìn)制補(bǔ)碼知識(shí)點(diǎn)。

  八位二進(jìn)制補(bǔ)碼最小值

  8位二進(jìn)制補(bǔ)碼表示整數(shù)的最小值是 -128, 最大值是 +127.

  原因:正數(shù)的補(bǔ)碼就是其本身,8位二進(jìn)制最大正整數(shù)是 0111111,也就是十進(jìn)制值 127。

  負(fù)數(shù)的補(bǔ)碼是它原數(shù)的反碼加1,最小值,就是負(fù)得最多的數(shù),

  即二進(jìn)制 1000 0000。十進(jìn)制-128。

  推導(dǎo): -128 =(-1)+(-127) = 原碼 1000 0001+原碼 1111 1111 =

  補(bǔ)碼 1111 1111 + 補(bǔ)碼 1000 0001 = 補(bǔ)碼 1000 0000。

  什么是二進(jìn)制的補(bǔ)碼?

  注明:正數(shù)的補(bǔ)碼與負(fù)數(shù)的補(bǔ)碼一致,負(fù)數(shù)的補(bǔ)碼符號(hào)位為1,這位1即是符號(hào)位也是數(shù)值位,然后加1

  補(bǔ)碼借鑒的模概念,雖然理解起來(lái)有點(diǎn)晦澀難懂。可以跳過(guò)

  模的概念:把一個(gè)計(jì)量單位稱(chēng)之為?;蚰?shù)。例如,時(shí)鐘是以12進(jìn)制進(jìn)行計(jì)數(shù)循環(huán)的,即以12為模。

  在時(shí)鐘上,時(shí)針加上(正撥)12的整數(shù)位或減去(反撥)12的整數(shù)位,時(shí)針的位置不變。14點(diǎn)鐘在舍去模12后,成為(下午)2點(diǎn)鐘(14=14-12=2)。從0點(diǎn)出發(fā)逆時(shí)針撥10格即減去10小時(shí),也可看成從0點(diǎn)出發(fā)順時(shí)針撥2格(加上2小時(shí)),即2點(diǎn)(0-10=-10=-10+12=2)。因此,在模12的前提下,-10可映射為+2。由此可見(jiàn),對(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)為16),因此它的運(yùn)算也是一種模運(yùn)算。當(dāng)計(jì)數(shù)器計(jì)滿(mǎn)16位也就是65536個(gè)數(shù)后會(huì)產(chǎn)生溢出,又從頭開(kāi)始計(jì)數(shù)。產(chǎn)生溢出的量就是計(jì)數(shù)器的模,顯然,16位二進(jìn)制數(shù),它的模數(shù)為2^16=65536。在計(jì)算中,兩個(gè)互補(bǔ)的數(shù)稱(chēng)為“補(bǔ)碼”。比如一個(gè)有符號(hào)8位的數(shù)可以表示256個(gè)數(shù)據(jù),最大數(shù)是0 1 1 1 1 1 1 1(+127),最小數(shù)1 0 0 0 0 0 0 0 (-128);那么第255個(gè)數(shù)據(jù),加2和減254都是一樣的效果得出的結(jié)果是第一個(gè)數(shù)據(jù) ,所以2和254是一樣的效果。對(duì)于255來(lái)說(shuō)2和254是互補(bǔ)的數(shù)。

  求一個(gè)正數(shù)對(duì)應(yīng)補(bǔ)碼是一種數(shù)值的轉(zhuǎn)換方法,要分二步完成:

  第一步,每一個(gè)二進(jìn)制位都取相反值,即取得反碼;0變成1,1變成0。比如,00001000的反碼就是11110111。

  第二步,將上一步得到的反碼加1。11110111就變成11111000。所以,00001000的二進(jìn)制補(bǔ)碼就是11111000。也就是說(shuō),-8在計(jì)算機(jī)(8位機(jī))中就是用11111000表示。

  不知道你怎么看,反正我覺(jué)得很奇怪,為什么要采用這么麻煩的方式表示負(fù)數(shù),更直覺(jué)的方式難道不好嗎?

  二進(jìn)制補(bǔ)碼的好處

  首先,要明確一點(diǎn)。計(jì)算機(jī)內(nèi)部用什么方式表示負(fù)數(shù),其實(shí)是無(wú)所謂的。只要能夠保持一一對(duì)應(yīng)的關(guān)系,就可以用任意方式表示負(fù)數(shù)。所以,既然可以任意選擇,那么理應(yīng)選擇一種用的爽直觀方便的方式。

  二進(jìn)制的補(bǔ)碼就是最方便的方式。它的便利體現(xiàn)在,所有的加法運(yùn)算可以使用同一種電路完成。

  還是以-8作為例子。假定有兩種表示方法。一種是直覺(jué)表示法,即10001000;另一種是2的補(bǔ)碼表示法,即11111000。請(qǐng)問(wèn)哪一種表示法在加法運(yùn)算中更方便?隨便寫(xiě)一個(gè)計(jì)算式,16 + (-8) = ?16的二進(jìn)制表示是 00010000,所以用直覺(jué)表示法,加法就要寫(xiě)成:

  00010000

  +10001000原碼形式-8

  ---------

  10011000

  可以看到,如果按照正常的加法規(guī)則,就會(huì)得到10011000的結(jié)果,轉(zhuǎn)成十進(jìn)制就是-24。顯然,這是錯(cuò)誤的答案。也就是說(shuō),在這種情況下,正常的加法規(guī)則不適用于正數(shù)與負(fù)數(shù)的加法,因此必須制定兩套運(yùn)算規(guī)則,一套用于正數(shù)加正數(shù),還有一套用于正數(shù)加負(fù)數(shù)。從電路上說(shuō),就是必須為加法運(yùn)算做兩種電路。所以用原碼表示負(fù)數(shù)是不行的。

  現(xiàn)在,再來(lái)看二進(jìn)制的補(bǔ)碼表示法。

  00010000

  +11111000補(bǔ)碼形式-8

  ---------

  100001000

  可以看到,按照正常的加法規(guī)則,得到的結(jié)果是100001000。注意,這是一個(gè)9位的二進(jìn)制數(shù)。我們已經(jīng)假定這是一臺(tái)8位機(jī),因此最高的第9位是一個(gè)溢出位,會(huì)被自動(dòng)舍去。所以,結(jié)果就變成了00001000,轉(zhuǎn)成十進(jìn)制正好是8,也就是16 + (-8) 的正確答案。這說(shuō)明了,2的補(bǔ)碼表示法可以將加法運(yùn)算規(guī)則,擴(kuò)展到整個(gè)整數(shù)集,從而用一套電路就可以實(shí)現(xiàn)全部整數(shù)的加法。(特別說(shuō)明,有部分素材來(lái)自博主JQ_AK47)

1738263