LoginSignup
0
0

More than 5 years have passed since last update.

2の補数の計算の2つの方法。

Last updated at Posted at 2018-12-30

2の補数の計算の2つの方法。

(1)
a=~a+1; /* 各ビットを反転して1を加える */
(2)
a=~(a-1); /* 1を引いて各ビットを反転させる */

証明 (3ビットで十分なので)
★方法(1)
値[10進]  各ビット反転 1を加算[10進]
000[ 0] 111    000[ 0]
001[ 1] 110    111[ー1]
010[ 2] 101    110[ー2]
011[ 3] 100    101[ー3]
100[ー4] 011    100[ー4]
101[ー3] 010    011[ 3]
110[ー2] 001    010[ 2]
111[ー1] 000    001[ 1]

★方法(2)
値[10進]  1を減算   各ビット反転[10進]
000[ 0] 111    000[ 0]
001[ 1] 000    111[ー1]
010[ 2] 001    110[ー2]
011[ 3] 010    101[ー3]
100[ー4] 011    100[ー4]
101[ー3] 100    011[ 3]
110[ー2] 101    010[ 2]
111[ー1] 110    001[ 1] 

0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0