1樓:
往上是減阿,老師說的沒錯阿,往下是加
2樓:看無痕的風
不是-127~128
為什麼8位二進位制的補碼取值範圍是-128~127
3樓:匿名使用者
八位二進位制正數的補碼範圍是0000 0000 ~ 0111 1111 即0 ~ 127,負數的補碼範圍是正數的原碼0000 0000 ~ 0111 1111 取反加一(也可以理解為負數1000 0000 ~ 1111 1111化為反碼末尾再加一)。
所以得到 1 0000 0000 ~ 1000 0001,1000 0001作為補碼,其原碼是1111 1111(-127),依次往前推,可得到-1的補碼為1111 1111,那麼補碼0000 0000的原碼是1000 0000符號位同時也可以看做數字位即表示-128,這也解釋了為什麼127(0111 1111)+1(0000 0001)=-128(1000 0000)。
在計算機中資料用補碼錶示,利用補碼統一了符號位與數值位的運算,同時解決了+0、-0問題,將空出來的二進位制原碼1000 0000表示為-128,這也符合自身邏輯意義的完整性。因此八位二進位制數表示範圍為-128~+127。
拓展資料:補碼的特性:
1、一個負整數(或原碼)與其補數(或補碼)相加,和為模。
2、對一個整數的補碼再求補碼,等於該整數自身。
3、補碼的正零與負零表示方法相同。
4樓:echo丶
首先八位二進位制數 0000 0000 ~1111 1111,一共可以表示 2^8=256 位數,如果表示無符號整數可以表示0~255。計算方法就是二進位制與十進位制之間的轉換。
如果想要表示有符號整數,就要將最前面一個二進位制位作為符號位,即0代表正數,1代表負數,後面7位為數值域,這就是原碼定義。這樣在現實生活中完全沒有問題,但在計算機中就出現了問題。
數的表示:
在原碼中,0的表示有兩種(+0)0000 0000、(-0)1000 0000,這樣就產生了編碼對映的不唯一性,在計算機上就要區分辨別。然而+0、-0卻沒有什麼現實意義。
數的運算:
為了解決上述數的表示問題,我們可以強制把轉換後的10000000強制認定為-128。但這又出現了一個新的問題就是數的運算。數學上,1+(-1)=0,而在二進位制中00000001+10000001=10000010,換算成十進位制為-2。
顯然出錯了。所以原碼的符號位不能直接參與運算,必須和其他位分開,這就增加了硬體的開銷和複雜性。
這個時候就要引入補碼,補碼錶示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。反碼定義為:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
但為什麼要引入補碼呢?
以及負數補碼定義為什麼是相對應的正數原碼取反加一?
一、為什麼要引入補碼?
先解決第一個問題,引入補碼是為了解決計算機中數的表示和數的運算問題,使用補碼,可以將符號位和數值域統一處理,即引用了模運算在數理上對符號位的自動處理,利用模的自動丟棄實現了符號位的自然處理,僅僅通過編碼的改變就可以在不更改機器物理架構的基礎上完成的預期的要求。
二、什麼是「模」?
模的概念可以幫助理解補數和補碼。
「模」是指一個計量系統的計數範圍。如時鐘等。計算機也可以看成一個計量機器,它也有一個計量範圍,即都存在一個「模」。
例如: 時鐘的計量範圍是0~11,模=12。表示n位的計算機計量範圍是0~2^(n)-1,模=2^(n)。
「模」實質上是計量器產生「溢位」的量,它的值在計量器上表示不出來,計量器上只能表示出模的餘數。任何有模的計量器,均可化減法為加法運算。例如:
假設當前時針指向10點,而準確時間是6點,調整時間可有以下兩種撥法:一種是倒撥4小時,即:10-4=6;另一種是順撥8小時:
10+8=12+6=6 在以12模的系統中,加8和減4效果是一樣的,因此凡是減4運算,都可以用加8來代替。對「模」而言,8和4互為補數。實際上以12模的系統中,11和1,10和2,9和3,7和5,6和6都有這個特性。
共同的特點是兩者相加等於模。
對於計算機,其概念和方法完全一樣。n位計算機,設n=8, 所能表示的最大數是11111111,若再加1成為100000000(9位),但因只有8位,最高位1自然丟失。又回了00000000,所以8位二進位制系統的模為2^8。
在這樣的系統中減法問題也可以化成加法問題,只需把減數用相應的補數表示就可以了。把補數用到計算機對數的處理上,就是補碼。
對一個正數的原碼取反加一,得到這個正數對應負數的補碼。例如~6=-7,而且加一之後會多出一個八進位制補碼1000 0000,而這個補碼就對應著原碼1000 0000,數字位同時當做符號位即-128。
根據以上內容我們就可以來解釋八位二進位制數的表示範圍:
八位二進位制正數的補碼範圍是0000 0000 ~ 0111 1111 即0 ~ 127,負數的補碼範圍是正數的原碼0000 0000 ~ 0111 1111 取反加一(也可以理解為負數1000 0000 ~ 1111 1111化為反碼末尾再加一);
所以得到 1 0000 0000 ~ 1000 0001,1000 0001作為補碼,其原碼是1111 1111(-127),依次往前推,可得到-1的補碼為1111 1111,那麼補碼0000 0000的原碼是1000 0000符號位同時也可以看做數字位即表示-128,這也解釋了為什麼127(0111 1111)+1(0000 0001)=-128(1000 0000)。
總結:
在計算機中資料用補碼錶示,利用補碼統一了符號位與數值位的運算,同時解決了+0、-0問題,將空出來的二進位制原碼1000 0000表示為-128,這也符合自身邏輯意義的完整性。因此八位二進位制數表示範圍為-128~+127。
補充資料:
在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。
原碼(true form)是一種計算機中對數字的二進位制定點表示方法。原碼錶示法在數值前面增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:
+0和-0),其餘位表示數值的大小。
5樓:塔駡德
8位二進位制的範圍就是-128~127,也就是-2^7~2^7-1,所以反碼也是這樣。
計算機對有符號數(包括浮點數)的表示有三種方法:原碼、反碼和補碼8位原碼能夠表示數的範圍是 -127~1278位反碼能夠表示數的範圍是 -127~1278位補碼能夠表示數的範圍是 -128~127既然範圍是-128~127,那肯定是用補碼錶示的。
6樓:沙裡波特
在補碼中,負數
和非負數,是一樣多的。
字長 8 位,共有 256 組**。
用其中的一半(128 個),表示負數,就是-128~-1。
用其中的一半(128 個),表示非負數,即 0~+127。
綜合,就是-128 ~ +127。
7樓:匿名使用者
對8位二進位制的博馬取值範圍是128~127這個問題呢,我還正在討論中,還沒有完全正確的結果。
8樓:星空月刃
0到127 二進位制為 00000000到01111111
-128到-1 二進位制為10000000到11111111
9樓:蘇北第一皮
看這個就好了,講的很全面很清楚
10樓:匿名使用者
這個是有符號的,八位的最高位表示符號位,1為負,0為正
所以範圍是:1111 1111 ——0111 1111
51微控制器中,變址定址和相對定址中的地址偏移量有何異同
11樓:匿名使用者
相對定址是指copy
:運算元的地址是一個基址暫存器和一個偏移量之和。
變址定址是指:運算元的地址是基址暫存器和變址暫存器的和。
51微控制器是對所有相容intel 8031指令系統的微控制器的統稱。該系列微控制器的始祖是intel的8031微控制器,後來隨著flash rom技術的發展,8031微控制器取得了長足的進展,成為應用最廣泛的8位微控制器之一,其代表型號是atmel公司的at89系列,它廣泛應用於工業測控系統之中。
12樓:匿名使用者
變址定址是以pc或dptr中的值和a相加,然後賦值給pc,程式即轉到該處執行,相對定址是以當前pc作為基準,前後轉移,以補碼形式給出,範圍-128到127,不同之處自己去體會
51微控制器的位定址區問題,MCS 51微控制器內部RAM中 單元為位定址區,其位地址範圍為
51單片bai機的位定址區問題書上寫著du位定址zhi區是20h 2fh,位地址00h 7fh,這不是超過dao這個位定址區了嘛內,這兩容個區域是什麼意思的?是這樣的,請你參考 51微控制器的位定址區問題書上寫著位定址區是20h 2fh 這裡的20h 2fh指的是片內ram低128位元組的 20h儲...
MCS 51微控制器的PC是多少bit的 它意味著什麼 復位後PC?又意味著什麼
pc為16位暫存器,意味著51微控制器的程式儲存器定址空間為2的16次方 復位後pc為0000h,意味著微控制器從頭開始執行程式。mcs 51微控制器的pc是16bit的?它意味著當前程式執行的地址是pc的值 復位後pc 0000h 又意味著程式從頭開始執行。16bit 儲存程式佇列 復位 0000...
mcs 51系列微控制器在擴充套件了外部程式儲存器時,為何需要在P
mcs 51微控制器與外部bai 擴充套件的du儲存器相連時,p0口是作為地址zhi 資料準雙向口 dao可輸入又可專輸出 ale輸出信屬號的負跳變用於單下機發出的低8位地址鎖存器的鎖存控制訊號。如果地地址超過8位,由p2口的a8 15來選取外部儲存器,其中又可作為訊問外部儲存器的控制端,你想想看,...