C 論理演算 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(論理演算)
(論理演算)
288行: 288行:
  
 
排他論理和はここではじめて登場する演算ですが、異なる数字同士のビット値ならば、1(真=true)とする変わった演算です。excrusive or とも表現されるためEX ORやEOR,XORと表現されます。XORが標準的な表現になると思います。
 
排他論理和はここではじめて登場する演算ですが、異なる数字同士のビット値ならば、1(真=true)とする変わった演算です。excrusive or とも表現されるためEX ORやEOR,XORと表現されます。XORが標準的な表現になると思います。
 +
{| style="color:black;" class="wikitable_ronriwa" border="1" cellspacing="0"
 +
|-
 +
! 値1 !! 値2 !! 結果
 +
|-
 +
| 0 || 0 || 0
 +
|-
 +
| 0 || 1 || 1
 +
|-
 +
| 1 || 0 || 1
 +
|-
 +
| 1 || 1 || 0
 +
|}
 +
異なるビットがあれば結果が1(真=true)になるため、ふたつの数値のビット単位排他的論理和でひとつでも1のビットがあれば同じ値でないということになります。ビット値の比較結果で間違っていた箇所はどこだったのかという計算をしたいときによく使われます。
 +
 +
 +
論理積の結果をよくみてみれば、FFFFFF00との論理積とれば上から48bit目までの値だけをもう一つの値から抜き出すような処理になっています。このようにビット演算は数値を取り出したり、比較したり、合わせたりという演算をすることができるので、ある大きさの機械語の1と0の並びにおいて何桁目かだけを1にしたりすることができるため、文字コードや数値コード以外の取り決めの中で通信するような機械語の規格のための操作として非常に重要な役割をもつ演算になっています。このような地道な論理演算の組み合わせでコンピュータおよび情報技術の全てが体現されていることに他ならないです。非常に複雑でち密な1と0のように表現される電気信号のON/OFFが羅列されて、そのネットワークや周辺機器の制御信号でのやりとりによって、人間にわかる形に変換する事をちょいちょいやりながらすべてが構成されているのですから、それらを制御するプログラムを理解し、開発し、カタチにすることは並大抵のことではないということがなんとなく実感できると思います。そして、それを少しでも制御してやろうという試みこそがプログラミングなのだと思います。わからないことだらけのコンピュータの超巨大で膨大な記号論を理解したり、数学的に表現したり、プログラムとして実現させるのですから、近代のコンピュータで何か役に立つものを作ろうとするとかなり膨大な処理をするプログラムを作っていることになります。もし簡単に便利なものがプログラムによって作れるのなら、それは開発環境が素晴らしいものであるからであり、プログラミング言語を機械語に翻訳してくれるシステムを構築してくれた先代の技術者達に感謝するべきところです。超巨大なビルが当然のように都市部の街中にたっていたりしますが、すべては小さなものから作り上げた基礎技術の上になりたっているのです。
 +
 +
 +
なんか、脱線してしまいましたが、話を少し戻しましょうか…
  
  
 
if文における判定処理も論理演算の1(真=true)と0(偽=false)に基づいて実施されていますので、論理演算は重要な知識となります。よく理解しておきましょう。できれば一歩踏み込んだブール代数論やディジタル回路工学まで理解できると良いのですが、理解しようとすれば、時間がいくらあってもたりません。排他的論理和やAならばBといった集合論くらいは抑えておきたいものです。AND回路/OR回路/NAND回路/NOR回路/EXOR回路/**フリップフロップ回路/こういった仕組みを理解することによってコンピュータのクロックと演算処理装置と制御装置と入出力装置の仕組みが理解できるようになります。情報工学や情報技術系の勉強を体系的に理解する学問では学習する機会の多い学問分野になります。トランジスタや半導体のスイッチやメモリの仕組みについても理解していける学問です。半導体を理解するには、更に電子物性論といったものや力学や電磁気学や化学そしてさらには自然工学、光学、量子化学、量子力学、量子物理学を理解していくことになります。実際の製造ではもちろん統計学が必要になりますし、画像処理工学や技術者倫理学、各種機器の取り扱い資格に文献を理解する語学力も必要になってきます。コンピュータを構成する機器を理解するには医学とはまた異なる専門性がそこにはあるのかもしれません。コンピュータを軸にバイオミメティクスや医学、宇宙工学が展開しているとすれば情報工学の理解は基礎の基礎くらいなのかもしれないですね。もちろん知らなくても現代の専門家程度であれば継続的な研究は可能だと思いますが、これからの専門性は計算機に頼る部分も多大になっていくものではないかと思います。
 
if文における判定処理も論理演算の1(真=true)と0(偽=false)に基づいて実施されていますので、論理演算は重要な知識となります。よく理解しておきましょう。できれば一歩踏み込んだブール代数論やディジタル回路工学まで理解できると良いのですが、理解しようとすれば、時間がいくらあってもたりません。排他的論理和やAならばBといった集合論くらいは抑えておきたいものです。AND回路/OR回路/NAND回路/NOR回路/EXOR回路/**フリップフロップ回路/こういった仕組みを理解することによってコンピュータのクロックと演算処理装置と制御装置と入出力装置の仕組みが理解できるようになります。情報工学や情報技術系の勉強を体系的に理解する学問では学習する機会の多い学問分野になります。トランジスタや半導体のスイッチやメモリの仕組みについても理解していける学問です。半導体を理解するには、更に電子物性論といったものや力学や電磁気学や化学そしてさらには自然工学、光学、量子化学、量子力学、量子物理学を理解していくことになります。実際の製造ではもちろん統計学が必要になりますし、画像処理工学や技術者倫理学、各種機器の取り扱い資格に文献を理解する語学力も必要になってきます。コンピュータを構成する機器を理解するには医学とはまた異なる専門性がそこにはあるのかもしれません。コンピュータを軸にバイオミメティクスや医学、宇宙工学が展開しているとすれば情報工学の理解は基礎の基礎くらいなのかもしれないですね。もちろん知らなくても現代の専門家程度であれば継続的な研究は可能だと思いますが、これからの専門性は計算機に頼る部分も多大になっていくものではないかと思います。

2015年2月16日 (月) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス