負の数(マイナスの数)は「補数」表現で

凄い(スゴイ)こと考えるネ

 これまで例えば 8ビット(=1バイト)Boxでは、0000 0000 から 1111 1111(2) まで256通りの数を表すことが出来る。10進数で言うと  0 から 255 (10) までの大きさの数を表すと申してきました。
負の数(負数)を取り扱うためには、上の約束を変更(へんこう)しなければなりません。変更するといっても、 これまで述べてきたことが破算になる(ダメになる)のではモチロンありませ〜ん。
各ビットは 0 か 1 のいずれかが入り、符号マイナス「−」は入る余地がありません。勿論符号プラス「+」も入るビットはありません。なので「 補数(ほすう)」なるもので負数を表すことに至りました。
さ〜て、後に(2)を付けたのは2進数、(10)を付けたのは10進数を表わすということでしたネ。




ここでは簡単で区切りのいい8ビット(1バイト)で説明していますが、何ビットでもかまいません。図のように、最左端(7番ですネ)ビットを符号ビットと呼んで、
 0 のとき 正の数(プラスの数)
 1 のとき 負の数
(マイナスの数)
を表すことにすると云う約束の変更です。
他は何ら変わるものでありませんよ。
そうすると、8ビットでは
 正の数は
  0000 0000 〜 0111 1111(2)
  つまり 0  〜 127(10)
の範囲を表すことになります。(正しくいうと、0 は正の数でない。注1)
 負の数は
  1111 1111 〜 1000 0000(2)
ということになりますが…

いきなりですが、上の例1、2の解説です。
  −1 を 1111 1111 
 −35 を 1101 1101
など負の数を「2の補数表現」する具体例を示しました。その必然性(わけ)をこれから説明に入ります。 

操作(=作り方)のまとめ

「負の数」を「2の補数」で表すには、その絶対値(=符号を取り除いたものデス)から
  �,垢戮討離咼奪箸鯣薪召気察´■� を加える(たす)
 と云う�� �△力�続操作をする。
その結果を(基数)2の補数(ほすう)と呼ぶ。
次表のように コンピュータ内の負の数が見えて来ましたネ

逆に考えてみます。補数表現の
1111 1011(2)は10進数でいくらか?
左はしが 1だから負数ですネ。
�� (ビット反転) 0000 0100 
�� (1をたす) 0000 0101 
これは 5(10)だから、上の答えは
10進の −5 であることになります。 
負の負は正なり ⇒ −(−5) = +5


 このように負数を補数で表したとき、
8ビット(1バイト)で作る数を全部並べて見ました。
表からも分かるように大きさの順に
 −128 から −1
までとなり、0と正数 1 から 127 までと合わせてトータルして 256 通りになります。 

コンピュータ がひき算を知らない!?


 ひき算 は⇒たし算でやる!
ひき算 125−128 は
たし算 125+(−128) と同じです。
最上位ビットを 1 にして負の数を作ったことにより、コンピュータは内部でひき算をしないという、コスイ、ニクイ、頭イイ ことやっている。
上の計算を左に示しました。 うまくいっています。

補数表現した負の小数を見てみよう


8ビットの大きさのBOXで、負の小数(2の補数表現)を見てみます。
負数だから左端(最上位)は符号ビット(0で正数、1で負数)です。
小数点の位置はどこでもいい
んですが、今は中央(3番4番の間)としました。
例に −6.625(10) を取り上げました。絶対値(符号を除いた)6.625が2進では、 0110 .1010 です。
�´△亮蟒腓鬚靴� 1001.0110 となりました。
符号ビットは1になっています。

 −6.625(10)  の補数表現は  1001.0110(2) と示されました。  

例で分かるように、整数部としては4ビット分あるので、
 正の数は 0000〜0111 ⇒ 0 〜 7(10) 、
負の数は 1111〜1000 ⇒ −1〜 −8(10) 
の範囲を表す。小数部4ビットを加味すると、
 0111.1111 〜1000.0000 ⇒ 7.9375 〜 −8(10) 
の範囲と云うことになりそうです。

2バイト(16 ビット)の負数の補数表現


16ビットでも同じように補数表現を行います。最上位(15番ビット)は符号ビットにあて、0で正の数、1で負の数を表します。正の数は 0000000000000000〜0111111111111111
つまり10進で、0 〜32767 の範囲を表し、
負の数は補数表現で
 1000000000000000〜1111111111111111 
つまり10進で、−32768 〜 −1 の範囲の数を表します。
指数を使った言い方にしますと、 16ビット(2バイト)で表現できる符号付き2進数は
  −215 〜 215 −1  (10) の範囲となりますね。
難しい言い方になりますが(小学生には早過ぎるw)、基数2の補数を用いて n ビットで表される2進数の範囲(大きさ)は 
 −2n-1 〜 2n-1 −1 となります。

 補数(2の補数)をよく知るために
 

ここまで、最上位ビットに符号ビットの役割をあたえた上で、
2進数の正の数⇒負の数は、
�,垢戮討離咼奪箸鯣薪召気察´■� を加える(たす)という�´△裡欧弔力�続操作で作る。これを2の補数表現と言うとしてきました。
2の補数を8ビットの大きさのBOXで説明します。

簡単のため、8ビットにしましょう。
0001 0110(2) に、�´△料犧遒鬚靴�
1110 1010(2) を作りました。
10進数にすると、22から −22 を作ったわけです。 さて両者を加えてみます。
0
001 0110 + 1110 1010
 = 1 0000 0000
となりますが、1 は1ケタくり上がって、8ビットからはみ出しです。オーバー。おさまる場所がないから捨てるしかないです。
そうすれば、見かけ上
0001 0110 + 1110 1010 = 0
となっています。


このように、2進数A とA' について、
A + A' = 1 0000 0000 (1×28です)
になるとき、A’をAの補数(2の補数)とよぶ。あるいはAとA’は互いに補数の関係にあるといいます。
尚、ややこしくなるのですが、
 A + A”= 1111 1111 (全ビット1)
になるとき、A”をAの1の補数(基数-1)と 呼び区別します。上記操作で、�,料乾咼奪犯薪樵犧遒世韻鬚靴燭發里任后�

10進数 Aの補数(10の補数) A’について

(基数−1)9の補数についても


ここであつかう数は10進数ですよ。
例 4ケタの数 A=4321 に対して
   4321 ← A
 + 5679 ← A’
  10000  和(5ケタ)   
  A' = 5679 は(基数)10の補数。

  4321 ← A
 + 5678 ← A''
  9999  和(4ケタ)
  A'' = 5678 は(基数−1)9の補数。へんちくりん。
上の説明で、くり上がって、はみ出た1を捨てると、
A + A’= 0  (オール 0) です。   
 さ〜て10進数では、A’はAの補数と呼ぶが、負数とは言いません。
10進の負数は
『−A』
ですよ〜。でも
A+A'= 0 、 A+(−A)=0

を比べて見ると、A'と −Aはウリ2つですか。

実際の情報処理試験問題から

問題
 負数を2の補数で表現する符号付き 16 ビットの2進数を 16 進法で表示したもののうち,4倍するとあふれが生じるものはどれか。
  ア 1FFF  イ DFFF
  ウ E000  エ FFFF  平成19年に出題されました。

算術シフト(1011ページ)は使わなくでも出来ます。2の補数で表す負数を意識するため扱います。 16ビット符号付き2進数の表す範囲は上述したように、 □から□までです。はみ出すのはどれでしょう。
【答は イ】 解説を次ページに。

問題 です m(^_^)m
(1) 10進の負数 −50 は 8ビットの2進数 ではいくらですか。
(2) 10進の計算 20−50 を 8ビットの2進数の「たし算」でやってみよう。
(3) 8ビットの2進数 1010 0101 は 10進でいくらでしょう。
(4) 前問の2進数の 2の補数はいくらでしょう。また1の補数はいくらでしょう。
(5) 10進数 4066 の10の補数、16進数 9AE の16の補数を求めよう。
(6) コンピュータが補数を好きなのは、ひき算するのが嫌いだから。YES or NO?

前ページの情報処理試験問題の解説 


問題1   =  ですから 、
2進小数では 0./ 0000/ 1000/ 0000/  …
と表されます。小数点以下5ビット目が1ですネ。分かりやすくするため、4ビット毎に括っています。 括り方から分かるように、これは、16進では、0. / 0/ 8 / 0 /… と云うことです。

問題2 2進数に変更すると、
c (16)=1100 (2)と同じように o.c (16)=0.1100 (2) です。
10進分数ではとなり、
小数に直して 0.5 + 0.25 = 0.75となります。

その他の前ページの答え 


 問1  = 0.010101 (有限小数) 
 問2  = 0.0100110011001…  (1001を繰り返す無限小数)  
注1 0(ゼロ)を正の数の方に含めたように話をしているが、分かりやすくするためであって、正しくは(分類上は) 0は正の数にも負の数にも入らない。
なお +0 、-0 と書くのは許される場合があり、どっちも 0 のことなり。気分的で面白い!



「ハリーポッターと呪いの子」
2016/11/11発売
作者: J.K.ローリング,ジョン・ティファニー,ジャック・ソーン,松岡佑子出版社/メーカー: 静山社
 初回「ハリーポッターと賢者の石」から次々続編を応援し続けてきました。今回で最終になる雲行きですが数年ぶりに血圧が上がりました。全部が舞台の脚本形式で展開します。9と3/4番線に、ハリー一家(ハリー・ポッター、妻ジニー、長男ジェームズ・シリウス・ポッター、次男アルバス、三女リリー・ルーナ・ポッター)が訪れるシーンから始まりますが……。
あらすじを解説したサイトを見かけました。ネタバレが嫌いな方は直接書物を読み終えるまでは絶対に開いてはいけません。
ネタバレ紹介その1。
その2。
**************


=サイト紹介=
googleトレンド アクセス
急上昇ワード


数学算数計算アプリの紹介


  WEB PAGE「2進数と遊ぶ」は iPhone iPAD スマホやタブレットからも開いて見ることが出来ますネ。
そこで楽しくなるようなGoogle計算アプリを2本紹介しましょう。モチロン無料で利用します。

 


 PhotoMath

 は高性能なカメラ計算機です!数式にカメラを向けるだけで、PhotoMath が問題を解いて解答を表示します。何百万人ものユーザーに加わり学習をスピードアップし、楽しくしましょう。

(インストール先)
 PhotoMath


 
MyScriptCalculater

 手書きで数式入力ができる電卓アプリです。 Android専用アプリとして登場です。スクリーンに数式を書いてみましょう。MyScriptテクノロジーが記号や数式を認識し、リアルタイムに演算を実行し結果を出してくれます。

(インストール先)
MyScript Calculater


クリックで救える命がある。

アメリカをそして世界を代表する、今は亡き黒人歌手ウイットニーヒューストン
 Whitney Houston の
- I Will Always Love You -
- Run to you -

 超素晴らしいです。先ずは聴いてみるべし。 youtube 視聴回数は何と1憶万を突破しています。画面は拡大出来ます。著作権で保護中のメッセージ有り。