リンクフリーを近日中にとりやめる予定です

すでにリンクを貼っていただいている方、ご一報頂きたくお願い申し上げます。


ごく少数ですが、リンクをお断りする場合があります



ブログ内 風景光景カテゴリー

続編記事などをご希望の方は こちらへどうぞ

スポンサーサイト

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

遅くない除算



前回、除算が遅いで、割り算がとても遅いということについて触れました。

特別な場合を除いては遅いです。
今回は
遅くない割り算についてのお話。

具体的には
ローテート、シフトと呼ばれる手法を用います。

整数の2、4、8、16、32・・・といった、2の乗数となる数で割り算するときは以外と速い。
もちろん、掛け算に用いることも可能。

これを理解するには2進数やビットとバイトについて理解してないと辛い。

まず、ビットって何について触れていきます。



しばしば、新しい PC ( パソコン ) を導入する際、カタログなどを見て比べます。

仕様・性能一覧などをよく見ると、
32ビットとか64ビットとか書いてあります。



この「△△ビット」について把握していないヒトも多いのでは ?

自動車のエンジンであれば排気量が大きいほど、坂道とかに強そうです。
燃費は悪いのはおいといて。

「きっと大きい数字の方が強そう!」
というようなイメージで選択しがちです。

もちろん、デザインやお手ごろな価格で決定するのもアリです。

ビットについて簡単に言うと、
電気が流れている ( = ON) 、流れていない ( = OFF ) のどちらかの状態。


ビットが8つ集まるとバイトと呼ばれます。
電子機器を使っていると、~バイトという言葉がよく出てきます。

・ON の状態 を 1
・OFF の状態 を 0
と考えます。


旗の上げ下げにも例えられます。
「フラグが立っている」という表現であれば、
ON の状態 を指します。つまり 1です。

0 = 00000000
1 = 00000001
2 = 00000010
3 = 00000011

私たちが普段用いる10進数を2進数で表記するとこうなります。


電気や数で例えると、ちょっとイメージし辛い。

そこで、電流のオン、オフをオセロゲームの白黒で置き換えてみます。



オセロの石が4個ある場合、白黒の組み合わせが16パターンできます。
- - - 白黒の2通りを4回掛け算すると16通りとなります。


2 × 2 × 2 × 2 = 16

各パターンに番号をふっていきます。
これで数を扱う場合、0 ~ 15 の16通りを表すことができます。
私たちが一般生活する中で始めの数は1ですが、数を考える場合 0 から考えます。


よく言われる 32ビットや64ビット。少し見えてきたでしょうか?

32ビットならば、オセロゲームの石が32個並んでいるのと同じです。
白黒の組み合わせパターンは4294967296通りできます。約43億


実際には、会計ソフトなどでも赤字 ( マイナス )も扱えないと不便です。
よって、扱える範囲はマイナス 2147483648 ~ プラス 2147483647 の約43億となります。

そこで例題。話を単純化するため、マイナスの範囲を省きます。

10進数で 5 , 10 , 15 これをを 2進数で表すと
5 = 00000101
10 = 00001010
20 = 00010100




ピンク色で網掛けしてある部分に注目 !
この図から何か、ひらめいたでしょう。


2倍は左方向に1マスずつずらす・・・
逆に、半分にする場合は右方向に1マスずらす・・・

この移動 ( ずらすこと ) をシフトもしくはローテートと呼びます。

40 割る 8 ならば、右側3つシフトすればOKとなります。
「 3ビット右シフトする」なんて言えるとカッコいいかも!

前回と同じように速度を測ってみたところ、
加算、減算 ・・・ 1 ~ 2 クロック、
乗算 ・・・ 1 ~ 3
除算 ・・・ 20 ~ 48
シフト ・・・ 1 ~ 4

となりました。

除算に比べて、シフト操作は 7倍 ~ 10 倍は効率的。

掛け算はもともと遅くないのであまり高速化は見込めない。
けれども、
2、4、8、16、32・・・で割り算するならば、
ビットのシフトを用いることで、遅さを軽減させることが可能です。


あくまでも、今回は正 ( プラス ) の値に限定したお話です。 
詳しいこと書き出すと 負 ( マイナス ) の 演算に関しても書きたいところです。
が、話が複雑になりそうなので後日。


今回はここまで。

猫でもわかる ?



ニェむい。



そんニャことより
木登りしようぜぇ。



木の上は涼しい ?



鉄棒ではなのだから、枝が折れないようにゆっくり登ってね・・・
スポンサーサイト

本日も最後までご覧いただきありがとうございます。

「つまらなかった」「判り辛った」という方もご遠慮なくコメント欄へどうぞ

テーマ : コンピュータ
ジャンル : コンピュータ

検索サイトからお越しの方へ
検索サイトからお越しの方は、ブラウザのアドレス欄vitalaboloveおよび、fc2.comが含まれているかご確認ください。
含まれていない場合、偽サイトを閲覧なされている可能性があります。

偽サイトは、当ブログの文字部分や画像部分が有害サイトへのバナーと置き換わっているようです。
プロフィール

Author:Vitalabolove
ご訪問ありがとうございます。
店長を任されておりますVitalaboloveです。

コメントはお気軽に。
今のところリンクフリーですが、あと数日でとりやめます。

画像データ、文言の引用は事前連絡くださるようお願い申し上げます。事前連絡の際は、左下、メールフォームを経由をご利用ください。

最新記事
カレンダー
07 | 2012/08 | 09
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 -
カテゴリ
ランキング
いつも応援いただきありがとうございました。ただいま休養中につきランキングへ参加していません・・・

フリーエリア
内緒話などはおきてがみをご利用ください。
月別アーカイブ
メールフォーム
掲載された記事について、ご不明な点はここからお問い合わせください

名前:
メール:
件名:
本文:

最新コメント
最新トラックバック
スパムと思われるトラックバックは削除しました
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。