2015-11-08 31 views
0

我有這個問題我正在做什麼,我必須將這個8位有符號二進制數10110100轉換爲符號幅度,1的補碼和2的補碼。簽名的數量和1的補碼

對於符號幅度,我得到的值是-76。

對於補碼我知道我必須翻轉所有的位,所以我會得到01001011,但我的問題是,這個1的補碼數字的第一位是0,這意味着它是一個正數。有人可以向我解釋如何將這個變成一個負數的1的補數,而不是前面的零?

回答

2

將位模式轉換爲其他任何東西都沒有意義,如果您不說如何首先解釋它。我假定你的意思是你需要將這三種模式解釋爲這三種模式。

因此,對於有符號數量級,您將第一位作爲符號,並將其餘解釋爲無符號二進制數。結果不是-76。

對於1的補碼,如果第一位是1,則知道它是負數。您反轉所有位,將結果解釋爲無符號數,最後在前面添加 - 符號。 (如果第一位是0,則跳過反轉步驟,並且不添加 - 號)

爲2的補,該過程是相同的,但反轉位之後,你加1

+0

嗨塞巴斯蒂安。你說過,如果第一位是1,則將所有位反轉,將其餘解釋爲無符號數字,最後在前面追加 - 符號。你能通過在前面加上「 - 」來解釋你的意思嗎?你是說我在前面加一個1? – LP496

+1

我的意思是在十進制表示。所以10110100在前面有一個1。將0110100轉換爲十進制,你得到52,加上 - 符號,你得到-52。 –

+0

哦,好的。我現在明白了。 – LP496