talosのプログラミング教室

【基本・応用情報技術者】2進数の負数表現

スポンサーリンク

こんにちは。たろすです。

今回は2進数の負数表現について説明します。

2進数の負数表現には二種類あるのでそれぞれ説明していきます。

1の補数

n桁の2進数kの1の補数は「kをビット反転した値」です。

例えば86を8桁の2進数にすると (01010110)_2なので、-86の1の補数は (10101001)_2になります。

2の補数

n桁の2進数kの2の補数は「1の補数+1」です。

つまり86の2の補数は (10101001)_2に1を足して (10101010)_2です。

計算してみる

本当に計算できるのか確かめてみましょう。

計算するときは2の補数を使います。

例として88-86を計算してみます。

88-86は88+(-86)と置き換えることができるので、88と-86をそれぞれ8桁の2進数にして加算してみます。

f:id:talosta:20210307190252p:plain

8桁の計算をしているため9桁目以降は無視します。

そのため結果は (00000010)_2となり、10進数で表すと2になります。

正しく計算できることが確かめられました。

おわりに

今回は2進数の負数表現を説明しました。

基本情報技術者試験応用情報技術者試験ではよく問われるのでしっかり覚えておきましょう。