3.2. マイナスの値について(2の補数)

 
   パソコンの数値表現には
   ”符号無し整数”(マイナスの値が存在しない)と、
   ”符号付き整数”(マイナスの値が存在する)
   ”浮動小数点”
   ”指数”
   等があります。
  ここでは符号付き整数におけるマイナスの値について説明します。
  

パソコンの世界では、マイナス(−)の値の表現について、「2の補数」によって
   表現します。
   この手法を採用する理由は【減算(マイナス計算)を加算(足し算)で処理したい】からなのです。

 
   

2の補数表現というと難しそうに聞こえます。
   この”2の補数”の説明は他に譲るとして、マイナス計算について(16ビットの場合を例として)下に
   簡単に説明したいと思います。
   

普通の数値は前ページで説明した様に、ビットの固まりで表します。
   (数値以外の(文字)の表現については改めて説明します)

    (例) ”3”
    


    (例)”4”
     

  マイナスの値の作り方。

  「元の値のビット状態を反転して ”1”を足す

   (例) ”−3”
  上記”3”のビットを反転し、”1”を足す。
     (ビット反転)
  +  (”1”を足す)

  = (”−3”のビット表現)

   (例) ”−4”
     (ビット反転)
  +(”1”を足す)

  = (”−4”のビット表現)


では検証してみましょう。

検証1
 ・3+(−3)=0となるか?
     (+3)
   + (−3)

 
  計算は”1 0000 0000 0000 0000”
  となりますが、16ビットしかデータの入る”マス”はないので、先頭の”1”は消えてなくなります。
 結果:”3+(−3)=0”となりました。

検証2
 ・4+(−3)=1となるか?
     (4)
  + (−3)

 =(1)
  計算は”1 0000 0000 0000 0001”
  となりますが、16ビットしかデータの入る”マス”はないので、先頭の”1”は消えてなくなります。
 結果:”4+(−3)=1”となりました。

検証3
 ・3+(−4)=−1となるか?
   (3)
 + (−4)

 =(−1)
  (”1”のビット反転+”1”)

 以上、 「元の値のビット状態を反転して ”1”を足す」(2の補数表現)事で得たマイナスの値によって、
 引き算も足し算として計算できました。


【表現桁数について】
符号付き整数の表現では、先頭ビットは”+”、”−”の判定として使用します。
従って表現できる桁数=15ビットとなり、
”−32767”〜”+32767”となります。

符号なし整数(マイナス値が存在しない)場合、
表現できる桁数は16ビットMAXとなり、
”0〜65535”となります。

同じ”1111 1111 1111 1111”でも
符号付き整数値の扱いでは”−1”であり、
符号なし整数値の扱いでは”+65535”になります。

どちらの表現で数値を使用するかは、実行するプログラム命令に依存します。

次へ

前へ
                パソコン講習会(初級)先頭ページ                IT OFFICE TOPページ