tft每日頭條

 > 生活

 > 二進制補碼的真值怎麼算

二進制補碼的真值怎麼算

生活 更新时间:2025-02-12 08:28:20

二進制補碼的真值怎麼算(二進制補碼的計算原理)1

  • 補碼作用:可以把減法按加法來處理;同時,還可以将符号位和其它位統一處理。
  • 正數的補碼與原碼相同;
  • 負數的補碼是其反碼加1。

我們以8位二進制為例,計算5-2=3,用二進制表示為:

00000101(原) 10000010(原)

=00000101(原) 11111101(反)

=00000101(原) 11111110(補)

=00000011

  • 補碼計算方法是在其原碼的基礎上, 符号位不變, 其餘各位取反再加一,那麼補碼為什麼要這麼算,其中的原理是什麼呢?

1、為什麼要取反再加一?

仍以上面的8位二進制數為例,模是100000000,即2^8=256,十進制數2的8位二進制數表示是00000010,取反得到11111101,二者相加:00000010(原) 11111101(反)=11111111,而11111111 1=100000000(模),

由以上可以看出:二進制數原碼加上取反後得到的值再加一就剛好得到模。而已知原碼 補碼=模,因此能夠得出結論:補碼等于原碼取反加一,這是計算補碼最簡單的方法。在這個過程中,反碼沒有什麼實質意義,它隻是計算機為了計算補碼時的一個中間量。

2、為什麼符号位可以參與運算,和其它位統一處理?

在計算機中正數和負數存儲方式是不同的,我們通過觀察二進制數第一位是0還是1可以知道這個數是正數還是負數。如果它的第一位是0,那麼它就是正數原碼,如果它的第一位是1,那麼它就是負數補碼。這裡的符号位其實是算出來的,所以它可以參與運算。

我們仍以8位二進制為例,計算2-5=-3,用二進制表示為:

00000010(原) 10000101(原)

=00000010(原) 11111010(反)

=00000010(原) 11111011(補)

=11111101

計算結果11111101第一位為1,那麼這個數值是負數補碼,反求原碼=(00000010)反 1 =00000011= 十進制數3,由此可知,11111101表示的是負數的3,在運算過程中我們沒有考慮符号位,僅用單純的加法運算進行運算,而得到的結果11111101也沒有人為去添加一個符号位,符号位是計算所得的,因為在計算過程中存在第一位為0則是正數,為1則是負數這個規律,于是我們認定第一位為符号位,也就是先有規律之後才有規定。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved