數位邏輯的補數的問題

2012-01-10 7:20 am
一、 2的補數表示法中10010101代表?
ans:-107(十進位)

二、10010011是以 2補數(2 's complement)表示之整數,其十進位數字為何?
ans:-109(十進位)

詳細過程
請問為何答案都是負的?應用到什麼觀念呢?
謝謝回答





更新1:

請問是不是8位元的最左邊的數字是1才代表是負數? 如果是1000001以2補數表示它的值是

更新2:

看不懂Leon Lin(linkuoli;潛力)在寫什麼

回答 (2)

2012-01-10 7:36 am
✔ 最佳答案
一、 2的補數表示法中1 0010101代表

紅色部份是1﹐因此是負數

將0010101調轉1101010﹐再加1﹐得1101011

這個數的值是1 * 2^6 + 1 * 2^5 + 1 * 2^3 + 1 * 2 + 1 = 107

因此原數為-107(十進位)

二、10010011是以 2補數(2 's complement)表示之整數,其十進位數字為何?

紅色部份是1﹐因此是負數

將0010011調轉1101100﹐再加1﹐得1101101

這個數的值是1 * 2^6 + 1 * 2^5 + 1 * 2^3 + 1 * 2^2 + 1 = 109

因此原數為-109(十進位)



2012-01-10 20:55:26 補充:
請問是不是8位元的最左邊的數字是1才代表是負數? 是的。
2012-01-14 10:34 pm
在計算2的補數時;
首先判斷最左邊的位元;0代表正數;1代表負數
其中:當1代表負數出現時,必需對二進位進行反相運算再+1例:2的補數表示為00110101代表?
答:
判斷最左邊的位元為0表示正數;則不用進行反運算
1*2^5+1*2^4+1*2^2+1*2^0=32+16+4+1=53例:2的補數表示為10110101代表?
答:
判斷最左邊的位元為1表示負數,則必需對二進位進行反相運算再+1
10110101
  ll
  v
01001010然後再+1 =>01001011負的(1*2^6+1*2^3+1*2^1+1*2^0)=負的(64+8+2+1)=負的75 一> -75

所以你最後面問的:

2補數1000001代表:

負的 0111110+1

= -63


收錄日期: 2021-04-26 19:16:18
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20120109000016KK09476

檢視 Wayback Machine 備份