スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

2進数の負数表現(1の補数、2の補数)

コンピュータでは、なぜ2の補数が使われるのか?


2進数で負の整数を表現する場合、大きく発想が3つ考えられます。

 ■符号絶対値表現
 ■1の補数表現
 ■2の補数表現


これらを順に検討して、
ほとんどのコンピュータで2の補数が採用される理由を説明します。
なお、情報処理技術者試験では、2の補数の問題が頻出します。

2進数の8ビットの箱を用意する


まず、8ビットの箱を用意します。
8bit7bit6bit5bit4bit3bit2bit1bit


ここで、
10進数2進数
8bit7bit6bit5bit4bit3bit2bit1bit
(略)
254
255

のように、十進数で0~255までの値を表すことができました。

ではプラスとマイナスの概念を導入した時
どのように表現する方法が考えられるでしょうか?

符号絶対値表現(いちばん初めに思いつく方法)


ここで、先頭に0ならプラス、1ならマイナスとしてはどうでしょう。

例えばこんな感じ
10進数2進数
符号7bit6bit5bit4bit3bit2bit1bit
127
126
(略)
+3
+2
+1
+0
-0
-1
-2
-3
(略)
-126
-127

のように、十進数で(-127)~127までの値を表すことができました。
なんか一見よさそうです。

符号絶対値表現は、加算を考えると使いにくい


しかし、この符号絶対値表現には2つの弱点があります。
 ■符号が異なる値を加算しても、正しい値にならない。
 ■ゼロの概念がふたつある。
具体的に、3+(-4)=-1となるか計算してみます。

10進数2進数
符号7bit6bit5bit4bit3bit2bit1bit
-4
合計
-7?

-7となってしまいました。
これでは、計算に不都合です。


1の補数表現(鏡のようにさかさまにする)


こういうのはどうでしょうか、プラスとマイナスをまるで鏡に映したようにさかさまにします。 (0と1を逆転させる。) 例えばこんな感じ
10進数2進数
符号7bit6bit5bit4bit3bit2bit1bit
127
126
(略)
+8
+7
+6
+5
+4
+3
+2
+1
+0
-0
-1
-2
-3
-4
-5
-6
-7
-8
(略)
-126
-127

1の補数では加算がしにくい


しかし、この1の補数による表現には2つの弱点があります。
 ■加算で、桁あふれが起こると一工夫必要になる。
 ■ゼロの概念がふたつある。
具体的に(-3)+8=5を計算してみます。
10進数2進数
桁あふれ符号7bit6bit5bit4bit3bit2bit1bit
-3
 8
合計
4?
↑箱がないので無視↑本来ある8個の箱

箱の制約上、4となってしまいました。
これでは、計算に不都合です。


2の補数表現(0をひとつにしてに、鏡のようにさかさまにする)


では、0を0000000のみにして、 プラスとマイナスをまるで鏡に映したようにさかさまにしてはどうでしょうか。 ちょっとずれますが、例えばこんな感じ
10進数2進数
符号7bit6bit5bit4bit3bit2bit1bit
127
126
(略)
+8
+7
+6
+5
+4
+3
+2
+1
-1
-2
-3
-4
-5
-6
-7
-8
-9
(略)
-127
-128

なんか、いびつですか仕方ない。
これはコンピュータに気持ち良く計算してもらうためです。

人間がつかうわけではないですから。

2の補数では加算がばっちり


2の補数による表現だと、今までの2つの弱点が解決されます。
 ■加算がしやすい。
 ■ゼロの概念がひとうになる。
具体的に(-3)+8=5を計算してみます。
10進数2進数
桁あふれ符号7bit6bit5bit4bit3bit2bit1bit
-3
 8
合計
↑箱がないので無視↑本来ある8個の箱

箱の制約上、あふれたものが出てきても、放置してもそのまま5となって加算しやすくなります。これは、計算に好都合です。

そこで、2の補数が今のコンピュータのほとんどに使われ、情報処理技術者試験にも頻出するのです。


スポンサーサイト

逆ポーランド記法(後置記法)

すこしデザインを変えました。

基本情報技術者試験 H24年春 問4
後置記法(逆ポーランド記法)では、
例えば、式Y=(A-B)×C を YAB-C×=と表現する。
次の式を後置記法で表現したものはどれか。

 Y=(A+B)×(C-D÷E)

ア YAB+C-DE÷×=
イ YAB+CDE÷-×=
ウ YAB+EDC÷-×=
エ YAB+CD-E÷×=



【解答・解説】
逆ポーランド記法は、
演算子(オペレータ)を被演算子(オペランド)の後に書く記法です。

これは、コンピュータで処理がしやすい記法なので、
非常によく出題されます。
(なぜ良く出るかは、あまり本に書いてないかも!)

逆ポーランド記法は、
「=」を「である」と考えて、日本語になおすといいです。

「Yは、AとBを足したものに、CからDをEで割ったものを引いたものに、かけたもの「である」」。

YAB+CDE÷-×=

よって、答えは イ


【なぜ、コンピュータにおいて、逆ポーランド記法は使いやすいの?】

Y=(A+B)×(C-D÷E)
という、人間がつかっている記法を中置記法といいます。

これを小学生のころに習ったとき、

・カッコは先に計算します。
・掛け算や割り算は、足し算や引き算よりは先に計算します。

といわれて、
ちょっと混乱しませんでしたか?

前から順番に計算すると間違ってしまいます。

コンピュータも同じで、演算子(+、-、÷、×など)がきたらすぐ計算したいのです。
覚えておくのは得意なので、数字はどんどんストックできます。

そこで、
(A+B)×(C-D÷E)
を後置記法にしたとき、コンピュータが間違わずに計算するかみてます。

AB+CDE÷-×
これをAから(左から)順にコンピュータにわたしてみましょう。

① Aがくる。おぼえとく。
② Bがくる。おぼえとく。
③ +がくる!ん!がまんできない!足しちゃうよ A+B
④ Cがくる。おぼえとく。
⑤ Dがくる。おぼえとく。
⑥ Eがくる。おぼえとく。
⑦ ÷がくる!ん!がまんできない!DをEで割っちゃうよ!
⑧ -がくる!ん!がまんできない!Cからさっきの計算結果の⑦を引いちゃうよ!
⑨ ×がくる!ん!がまんできない!③に⑧をかけちゃうよ!

これの順番をよく検討すると、ちゃんとした計算順序になっています。
コンピュータに親切な記法というわけです。




FUJITSU ScanSnap S1500 Acrobat X 標準添付 FI-S1500-AFUJITSU ScanSnap S1500 Acrobat X 標準添付 FI-S1500-A

富士通
電子書籍アイテム


基数変換とか(2進数の3倍)

【2進数を3倍するには?】

10進数で、
10倍の数字をあらわすには0を、1つつければいい。
(左に1つシフトすればいい。)

(例)10→100

2進数で、
2倍の数字をあらわすためには0を、1つつければいい。
(左に1つシフトすればいい。)

(例)110→1100

2進数を3倍するには、
0をつけた数字に、もともとの数字を足せばいい。
(めんどうだけど、普通にもともとの数字を三つたしてもいいよ。)


【過去問】
それに関連した問題を
ITパスポート基本情報処理から2題みる。


~~~~~~~~~~~~~~~~~
【ITパスポート H21年春 問64】
2進数10110を3倍にしたものはどれか。

ア 111010
イ 111110
ウ 1000010
エ 10110000

~~~~~~~~~~~~~~~~~




【解答・解説】

10110を左に1つシフト(2倍)して101100
さらに元の数字の10110を足せば、3倍になる。

 101100
+ 10110
1000010

したがって、解答は ウ 100010

ってこれじゃ、わからないし見にくいなぁ…
なんとかしたい。




全く同じ内容を難しくしたものが、基本情報技術者に出ている。
~~~~~~~~~~~~~~~~~
【基本情報技術者試験 H24年春 問2】
非負の2進数b1b2…bnを3倍したものはどれか。

ア b1b2…bn0+b1b2…bn
イ b1b2…bn00-1
ウ b1b2…bn000
エ b1b2…bn

~~~~~~~~~~~~~~~~~



【解答・解説】
2進数なので、
b1b2…bnを左に一つシフトすれば、2倍になる。

b1b2…bn0は、
b1b2…bnの2倍

これに、元の数字b1b2…bnをたせば、3倍になる。

したがって、答えは ア b1b2…bn0+b1b2…bn


平成25年度 イメージ&クレバー方式でよくわかる 栢木先生のITパスポート教室 CBT対応 (情報処理技術者試験)平成25年度 イメージ&クレバー方式でよくわかる 栢木先生のITパスポート教室 CBT対応 (情報処理技術者試験)
栢木 厚

技術評論社
売り上げランキング : 3898

Amazonで詳しく見る

平成25年度 イメージ&クレバー方式でよくわかる 栢木先生の基本情報技術者教室 (情報処理技術者試験)平成25年度 イメージ&クレバー方式でよくわかる 栢木先生の基本情報技術者教室 (情報処理技術者試験)
栢木 厚

技術評論社
売り上げランキング : 630

Amazonで詳しく見る
プロフィール

ダニエル

Author:ダニエル
教えることが好きです。そのうちオリジナリティ出していきます。

保有資格:
基本情報技術者試験
応用情報技術者試験
システム監査技術者試験
その他の資格

カテゴリ
PR
カウンタ
RSSリンクの表示
リンク
検索フォーム
ITパスポート
基本情報技術者
応用情報技術者

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。