簡體   English   中英

七位和兩個恭維

[英]Seven bit and two compliment

如果我們對整數使用七位二進制補碼表示,那么可以用這種方式表示的整數(事物)的數量是多少? 可以用這種方式表示的最小(最多)負 integer? 可以這樣表示的最大正數integer?

  • 這是一個我無法回答和解釋的 CS 作業問題。 任何幫助,將不勝感激。

所以它真的很容易

二進制計數通常像

>00000000 (8) = 0
>00000001 (8) = 1
>00000010 (8) = 2
>00000011 (8) = 3
>etc...etc.

在 7 位中,最后一位決定它是負數還是正數

1為負,0為正

> 10000000 = -128
> 10000001 = -127
> 10000010 = -126
> On...and on...
> 11111111 = -1
> 00000000 = 0
> 00000001 = 1
> 01111111 = 127

所以最低你可以 go 是 -128

最高的 go 是 127

批准的答案不正確。 使用 7 位 2 的補碼,它的范圍可以從 -64 到 63。(傳統上,7 位只能 go 最多 2^n-1,即 128,但 MSB 保留用於符號,所以我們可以有 6 位來表示數據。我們將得到 64 個正值和 63 個負值,答案應該是 -64、63。)

不,因為在二進制補碼中,最高有效位是符號位。 0000001 是 +1,一個正數。

這就是為什么二進制補碼 7 位數的范圍是 -64 到 63,因為 64 是不可表示的(否則它將是負數)。

最大的負數是 1000000。前導 1 告訴您它是負數,要獲得數字的大小,您翻轉所有位 (0111111),然后加一個 (1000000 = 64)。 所以得到的數字是 -64 到 63。

對於最大的正數 integer 在 2 的補碼中使用公式 (2^(n-1)-1) 即 (2^(7-1)-1)=63 對於最小的使用 -2^n-1 即 -2 ^7-1=-64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM