ンピュータでの算術演算を理解する。引き算は2の補数を使うと足し算で同じ計算が出来ましたが、掛け算や割り算の場合はどうでしょうか。10進数の123を10倍すると1230に、100倍すると12300になりますが、この計算は123の桁を10倍のときは1つ、100倍のときは2つ左ずらすことで簡単に求めることが出来ます。逆に、10分の1にする場合は右に1つ、100分の1にする場合は右に2つずらすことで求めることが出来ます。数値の桁を1つずつずらすことは、その数値の『基数倍』や『基数分の1』を計算するのと同じ効果があります。このように桁を左や右にずらすことを『シフト』といいます。左にずらすことを「左シフト」、右にずらすことを「右シフト」といいます。これらのシフト演算は掛け算や割り算の代わりに利用することもありますが、通常は2進数でビットバターンの特定の操作をしたり、ビットの状態を判定する際に利用します。2進数のシフト演算2進数の場合は、1桁左シフトすると数値は2倍、1桁右シフトすると、数値は2分の1となります。桁あふれ(オーバーフロー)コンピュータで数値を表現する場合、8ビットや16ビットなどあらかじめ表現範囲は決まっています。その為、シフトを行うと表現の幅を超え、ビットが飛び出してしまい、正確に数値が表現できない場合があります。これを「桁あふれ」または「オーバーフロー」といいます。シフトの種類シフト演算には、符号ビットを考慮しない「論理シフト」と、符号ビットを考慮してそのままにする「算術シフト」があります。論理シフト論理シフトでは、符号ビットを考慮しません。最上位のビットも含めてシフトを行います。シフトすることによって飛び出したビットは捨てられ、空いたビットには0が入ります。シフトによって飛び出したビットに1が入っていた場合、桁あふれが発生し、正しい計算結果を得ることが出来ません。左にシフトして桁あふれが発生した場合を「オーバーフロー」、右にシフトして桁あふれが発生した場合を「アンダーフロー」といいます。左論理シフト左論理シフトでは、左にNビットシフトすると、左側の上位Nビットが飛び出して捨てられます。その分、右側の下位Nビットが空き、そこには0が入ります。これによって、元の数の2N倍の数となります。シフトによって飛び出したビットに1が入っていた場合、オーバーフローが発生し、正しい計算結果を得ることが出来ません。右論理シフト右論理シフトでは、右にNビットシフトすると、右側の下位Nビットが飛び出して捨てられます。その分、左側の上位Nビットが空き、そこには0が入ります。これによって、元の数の1/2N倍の数となります。シフトによって飛び出したビットに1が入っていた場合、アンダーフローが発生し、正しい計算結果を得ることが出来ません。算術シフト算術シフトでは符号ビットを考慮して、先頭の最上位ビットはそのまま移動しません。最上位以外のビットだけをシフトします。負の数を2の補数で表現する、符号付きの2進数の場合は算術シフトが使われます。左算術シフト左算術シフトでは、先頭の符号ビットは移動せず、それ以外のビットを左にシフトします。先頭の符号ビットが移動しない以外は論理シフトと同様です。算術シフトの場合は、シフトによって飛び出したビットに「符号ビットと異なる値」が入っていた場合、オーバーフローが発生し、正しい計算結果を得ることが出来ません。右算術シフト右算術シフトでは、先頭のの符号ビットは移動せず、それ以外のビットを右にシフトします。シフトによって左側に空いたビットには、符号ビットと同じ値が入ります。シフトによって飛び出したビットに1が入っていた場合、アンダーフローが発生し、正しい計算結果を得ることが出来ません。数値データの形式と誤差コンピュータでは扱う情報に応じて、数値の表現方法が使用される。使用する数値データの形式により、精度、扱える範囲、データサイズ、誤差の生じやすさが異なってくる。誤差の種類としては以下の様なものがある。オーバーフロー、アンダーフロー:扱えるデータの範囲を超えた時の誤差。丸め誤差:無限小数の桁を区切った際に発生。情報落ち:絶対値の大きい数と小さい数を加減算した時、絶対値の小さい値が無視される。集合,命題,ベン図の手法と考え方を理解する。同じ属性を持つ要素の集まりのことです。集合はよく「ベン図」で表されます。要素全体の集まりを四角で表し、そのうち集合に含まれる要素を色付きの円で示します。全体から、その集合を取り除く集合の包含関係2つの集合の関係は、場合によっては下図のように、集合Aが集合Bに含まれる場合もある。この様な包含関係を表す演算子として「⊆」や「⊇」が用いられる。命題とは、要素を「正しい(真)」か「正しくない(偽)」かで振り分けるための条件付けを指します。ある命題について、真か偽かによって要素を振り分けると集合を作ることが出来ます。「真」と「偽」を真理値といい、「真」を1、「偽」を0として表すこともあります。対象となる要素の真理値を表の形にまとめたものを、真理値表といいます。真偽によって演算結果を表すことを論理演算といいます。基本となるものに「否定(NOT)」「論理積(AND)」「論理和(OR)」があります。2つの命題が「~または~」の関係(OR)論理演算はコンピュータと縁の深いモデル化の技法です。AND、OR、NOTで複数の命題を組み合わせれば、どんな複雑な論理回路も作ることが出来ます。データ間の関係も論理式に置き換えると整理できるので、プログラミングやデータベースの構築に欠かせない理論です。論理積(AND)、論理和(OR)集合の論理演算は、リレーもしくは半導体回路を使った電子回路で実現することが出来ます。真理値表のAとBを入力に見立てて、その真、偽の状態によって論理和の真理値表と同じ結果を出力する回路をOR回路、論理積と同じ結果を出力するものをAND回路、入力の否定を出力するものをNOT回路といいます。真理値表Aの否定AとBの論理積AとBの論理和それぞれの回路は回路図上で以下の図のような記号(MIL記号)を使って表します。NAND回路とNOR回路は、それぞれAND回路、OR回路にNOT回路を繋いだものとなります。これらの回路を組み合わせることで、非常に複雑な論理式や機能を電子回路で実現することが出来ます。実際、コンピュータ内部で足し算やシフト演算を行うALU、命令デコーダ、タイミング制御回路、レジスタやメモリ(DRAMを除く)なども全て論理回路で構成されています。基本となる論理演算を組み合わせたものもよく利用されます。代表的なものは、「否定論理和(NOR)」「否定論理積(NAND)」「排他的論理和(XOR)」です。論理演算の一般的な法則2つの命題を使った論理演算には、幾つかの法則が成り立ちます。交換の法則:結合の法則:分配の法則:復元の法則:ド・モルガンの法則:ド・モルガンの法則を始めとする、論理演算の各種の法則は、複雑な論理式を簡略化したり、別の式に変換したりする時に利用できます。これは、プログラムの開発において、判定条件が複雑になった時、評価する式を簡略化したり、デジタル回路を設計する時に、同じロジックの回路を少ない部品点数で設計し直したり、と言った場面で役立ちます。カルノー図法カルノー図法は真理値表でパターン数が増えて見づらいときなど、論理式を簡略化するための図法。下記のような変数が3つ以上の式で、論理積の項を論理和した形(積和形)の場合に使いやすいとされている。