簡體   English   中英

表示8086中的-130的位數最少?

[英]Minimum no of bits to represent -130 in 8086?

我需要知道表示8086中的130-130所需的最小位數。

  • 對於130(無符號):這將是無符號的,因此可以正常表示。 130 = 0x82 = 1000 0010b在這種情況下,答案將是8位
  • 對於-130(帶符號):8086中的負數是無符號數字加2的第二個補碼。因此,第一個補碼(不是0x82):0111 1101b加上1它將是0111 1110b = 0x7E。 在我看來,您只需要最少 7位即可代表-130。 這是正確的嗎 ? 如果數字是負數,難道不應該是知道該符號是負數的最后一位嗎? 這將需要超過7位。

如果有人肯定知道答案,請告訴我。

在取數字的二的補碼時,您必須

  • 在左邊放置無限個0位
  • 反轉所有位
  • 加1
  • 如果需要,請刪除一些無限數量的1位

讓我們將其應用於數字-130。 130的位模式是

1000 0010

在左側放置無窮多個0之后

0000 0000 1000 0010

好的,所以八比無窮大一點,但是你明白了。 下一個反轉得到

1111 1111 0111 1101

並加1得到

1111 1111 0111 1110

此時,您可以刪除左側的一些無限1,但必須至少保留其中一個。 因此,最短的二進制補碼表示法-130需要9位。

1 0111 1110

如果問題是x86處理器上需要什么大小的寄存器,則答案是16位寄存器。

暫無
暫無

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

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