<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>論理演算 | 基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</title>
	<atom:link href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/tag/%e8%ab%96%e7%90%86%e6%bc%94%e7%ae%97/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi</link>
	<description>基本情報技術者試験を学習する人のためにつくられた専門メディア。250本以上の記事を掲載し、勉強方法や各分野のポイント、過去問解説など、試験に役立つ情報を発信。試験対策書籍を執筆する著者が、はじめて学ぶ人でもわかりやすく解説します。（2023年度からの新制度に対応済み）</description>
	<lastBuildDate>Wed, 10 Jun 2026 00:47:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.9.29</generator>
	<item>
		<title>「2進数と論理演算が難しい&#8230;」「科目Bを時間内で解くコツは？」｜基本情報お悩み相談室</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/consultation_room/fe3/</link>
		<pubDate>Tue, 26 Aug 2025 10:20:16 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[2進数]]></category>
		<category><![CDATA[科目 B]]></category>
		<category><![CDATA[論理演算]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/?post_type=consultation_room&#038;p=8701</guid>
		<description><![CDATA[<p>この連載は、基本情報技術者試験の受験者を対象としたものです。 毎回2つずつ、受験者が抱えているお悩みに、講師歴20有余年の私がお答えします。 お悩みの中には、技術的なものもあれば、精神的なものもあります。 どちらも解決し [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/consultation_room/fe3/">「2進数と論理演算が難しい…」「科目Bを時間内で解くコツは？」｜基本情報お悩み相談室</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>この連載は、基本情報技術者試験の受験者を対象としたものです。<br />
毎回2つずつ、受験者が抱えているお悩みに、講師歴20有余年の私がお答えします。</p>
<p>お悩みの中には、技術的なものもあれば、精神的なものもあります。<br />
どちらも解決して、スッキリした気分で受験勉強をしましょう。</p>
<div class="divider mag_tp60 mag_bt30">
<div class="chip" style="color: black;">お悩みを解決してくれる講師</div>
</div>
<div class="row direction-column mag_lt00 mag_rt00 mag_bt00 pad_w10">
<div class="col s12 m2 center pad_tp30"><img class="circle avatar" src="/dokushuzemi/ec/fe/fenavi/wp-content/uploads/2025/06/1.jpg" alt=""></div>
<div class="col s12 m10 pad_15 blue-grey-text">
<p class="bold">矢沢 久雄</p>
<p class="small-text blue-grey-text">IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”。<br />
大手電機メーカーでＰＣの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識０ベースのＩＴエンジニアや一般書店フェアなどの一般的なＰＣユーザの講習ではダントツの評価。大手電機メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。<br />
■主な著書<br />
「プログラムはなぜ動くのか（日経BP社）」「でるとこだけ！基本情報技術者（翔泳社）」など多数</p>
</p></div>
</div>
<div class="divider mag_bt30"></div>
<style>comment{background:#fafafa;color:#3f51b5;padding:2em;margin:3em 0 4em;position:relative;border-radius:.5em;}.comment p{color:#3f51b5}.comment::before{content:"";background:url(/dokushuzemi/ec/fe/fenavi/wp-content/uploads/2024/04/29d3bc99193cb0b837fb8cc53f050ae5-1.jpg);background-size:cover;border-radius:50%;height:3.5em;width:3.5em;position:absolute;top:-2em;left:1em;box-shadow:0 2px 2px 0 rgba(0,0,0,0.14),0 1px 5px 0 rgba(0,0,0,0.12),0 3px 1px -2px rgba(0,0,0,0.2)}.divider{overflow:unset;position:relative}.divider .chip{font-size:.8em;position:absolute;top:-1.5em}.personal-name{font-size:1.1em;font-weight:700;display:block}.responsive-width{width:85%; margin:auto;}@media only screen and (max-width:600px){.responsive-width{width:100%}.avatar{max-width:50%}}</style>
<h2>【お悩み1】<br />
2進数と論理演算がまったくわかりません。どのように学習すれば理解できますか？</h2>
<p>
私の講師経験上、2進数と論理演算は、とても多くの受験者が苦手としています。<br />
これらに関する問題が難しいのは、単に用語の意味を覚えるだけでは解けないからです。</p>
<p>なぜそうなるのか？ なぜそうする必要があるのか？<br />
根本的な仕組みや理由を理解する必要があります。</p>
<p>ですから、他の分野より、じっくりと時間をかけて丁寧に学習しましょう。</p>
<p>はじめに、<strong>なぜ2進数と論理演算に関する問題が出るのかを知ってください。</strong></p>
<p>それは、<span style="background-color: #c0e7f9;">コンピュータの内部の仕組みとして、2進数と論理演算が使われているから</span>です。<br />
コンピュータ内部では、電線1本で2進数の1桁を伝えています。<br />
電線の電圧が高ければ1で、低ければ0です。</p>
<p>コンピュータの内部では、トランジスタという素子（電気的にON/OFFができるスイッチだと考えてください）を使って、AND、OR、NOT、XORといった論理演算が行われています。<br />
コンピュータを外部から使うときには、10進数で加減乗除の四則演算を行えますが、コンピュータの内部では、それらが2進数と論理演算に置き換えられているのです。<br />
つまり、<span style="background-color: #c0e7f9;">2進数と論理演算に関する問題は、コンピュータの内部の仕組みに関する問題</span>なのです。</p>
<p>2進数と論理演算に関する問題のテーマには、2進数と16進数の変換、2の補数表現、固定小数点数、浮動小数点数、マスク演算、シフト演算、半加算器、全加算器、などがありますが、これらをいきなり学習したら、まったくわからなくても当然でしょう。</p>
<p>これらのテーマを学ぶ前に、2進数と論理演算に慣れておく必要があるのです。<br />
2進数に慣れるには、2進数で0～1111まで数える練習をするとよいでしょう。</p>
<div class="card-panel mag_h30 c-round">
●2進数で0～1111まで数える練習</p>
<p>（1）メモ用紙かノートを用意してください。<br />
（2）2進数の0～1111は、10進数の0～15に対応するので、まず10進数の0～15を縦に並べて書いてください。<br />
（3）つぎに、それらの横に2進数を書いてください。<br />
　　 0、1、10、11、100、・・・、1111と書いて行くのです。<br />
（4）もしも、最後が1111にならなかったら、どこかで数え間違いをしているので、もう一度やってください。
</p></div>
<p>できるようになるまで、やってください。<br />
そうすれば、0と1だけで数を表現すること、1の次に桁上がりすること、といった2進数の性質に慣れるはずです。</p>
<p>論理演算（2進数のデータに対する論理演算）に慣れるには、AND、OR、NOT、XORという論理演算の結果の一覧を、メモ用紙かノートの上に書き出す練習をするとよいでしょう。</p>
<div class="card-panel mag_h30 c-round">
●論理演算の結果の一覧を書き出す練習</p>
<p>（1）まず、1桁の2進数の論理演算のすべてのパターンを書き出します。</p>
<p>    たとえば、ANDなら「0 AND 0 = 0」「0 AND 1 = 0」「1 AND 0 = 0」「1 AND 1 = 1」です。<br />
    OR、NOT、XORでも同様にやってください。</p>
<p>（2）それができたら、複数桁の2進数を論理演算します。</p>
<p>     例として、4桁の「0101」と「0011」を論理演算するとしましょう。<br />
    「0101 AND 0011 = 0001」「0101 OR 0011 = 0111」「0101 XOR 0011 = 0110」になります。<br />
     NOTは、1つのデータを反転するものなので、「0101」でやってみましょう。<br />
    「NOT 0101 = 1010」になります。
</p></div>
<p>このような地道な練習を、スラスラできるようになるまで繰り返してください。<br />
そうすれば、AND演算は両方が1のときだけ1になる、OR演算は少なくともどちらか一方が1のとき1になる、といった感覚をつかめるはずです。</p>
<p>2進数と論理演算に慣れたら、教材を使って、問題に取り上げられるテーマごとに、じっくりと時間をかけて丁寧に学習していきましょう。<br />
その際に、重要なのは、<strong>なぜそうなるのか？ なぜそうする必要があるのか？ を知ること</strong>です。</p>
<p>そういう決まりだから、では理解できません。</p>
<p>たとえば、2の補数表現が必要なのは、0と1だけを使う2進数では、そのままではマイナスの数を表せないからです。<br />
マイナスの数を表すために何らかの工夫が必要であり、その代表的な方法が2の補数表現なのです。<br />
半加算器と全加算器を学ぶ理由は、四則演算が、論理演算の組合せて実現できることを知るためです。<br />
四則演算には、加減乗除がありますが、試験には、加算を行う半加算器と全加算器が取り上げられます。</p>
<p>苦手分野を克服するには、教材選びも重要です。<br />
そういう決まりだから、という説明ではなく、コンピュータの仕組みに照らし合わせて、なぜそうなるのか？ なぜそうする必要があるのか？ をちゃんと説明している教材を選んでください。<br />
書店に行って様々な教材の内容を見て、2進数と論理演算をちゃんと説明しているものを選んでください。
</p>
<h2>【お悩み2】<br />
科目Bの問題を解くのに時間がかかってしまいます。短い時間で解く方法はありますか？</h2>
<p>
科目Bは、試験時間100分で全20問に解答します。<br />
1問あたりの解答時間は、平均して100分÷20問＝<strong>5分</strong>であり、よほど試験に慣れている人でない限り、全問を解くのは困難でしょう。</p>
<p>試験の合格点は、1000点満点で600点以上です。<br />
それぞれの問題の配点は公表されていませんが、単純に計算すると60%以上つまり20問×0.6＝12問以上できれば合格です。<br />
<strong>試験時間100分で、12問以上できることを目指しましょう。</strong>そうすれば、1問あたりの解答時間は、平均して100分÷12問＝約8.3分です。<br />
たったの5分と比べたら、ずいぶん気持ちが楽になったでしょう。</p>
<p>試験の内容は、問1～問16が「アルゴリズムとプログラミング」に関する問題で、問17～問20が「情報セキュリティ」に関する問題です。<br />
アルゴリズムとプログラミングの問題は、「プログラムの基本要素」「データ構造およびアルゴリズム」「プログラミングの諸分野への適用」というカテゴリがあり、問題ごとに難易度にかなりの差があります。</p>
<p>したがって、<strong>難しい問題に着手して時間を使ってしまうと、他のやさしい問題を解く時間が足りなくなってしまいます。</strong><br />
それに対して、<strong>情報セキュリティの問題は、どの問題も同じ程度の難易度</strong>です。<br />
そこで、12問以上できるための作戦としては、<span style="background-color: #c0e7f9;">先に問17～問20の情報セキュリティの全4問を解き、残りの時間で問1～問16のアルゴリズムとプログラミングの全16問の中から時間がかからなそうな順に8問を解く</span>とよいでしょう。</p>
<p>4問＋8問＝12問になり、合格点に達します。<br />
全16問中の8問ですから、ずいぶん気持ちが楽になったでしょう。<br />
もちろん、8問を解いて時間に余裕があるなら、他の問題も解いてください。</p>
<p>とは言え、平均して1問あたり約8.3分は、それほど余裕がある時間ではないでしょう。<br />
短い時間で解くための工夫が必要です。これ以降では、問題を短い時間で解くコツを、いくつかアドバイスしましょう。</p>
<p>情報セキュリティの問題を短い時間で解くコツは、<span style="background-color: #c0e7f9;">先に設問と選択肢を見てから、問題を読むこと</span>です。<br />
情報セキュリティの問題は、事例（架空の事例です）風になっています。<br />
そのため、問題の冒頭に「A社は、放送会社や運輸会社向けに広告制作ビジネスを展開している。・・・」や「A社は従業員450名の商社であり、昨年から働き方改革の一環として、在宅でのテレワークを推進している。・・・」のような事例が書かれています。</p>
<p>事例の中には、事例らしく見せるための部分が多くあり、<strong>それらは設問を解くために必要ありません。</strong><br />
<span style="background-color: #c0e7f9;">必要がない部分を読み飛ばせるように、先に設問と選択肢を見ておくのです。</span><br />
そうすれば、短い時間で問題を解けます。問題によっては、設問と選択肢を見ただけで（事例を読まなくても）、正解を選べる場合もあります。</p>
<p>ただし、コツだけがわかっても、情報セキュリティに関する用語や概念の知識がないと、問題を解くこと自体が困難でしょう。</p>
<p>もしも、<span style="background-color: #c0e7f9;">知識が不足していると感じたなら、科目Aの過去問題を数多く解いて知識の補充をすることをお勧め</span>します。<br />
試験によく出る用語や概念というものがいくつかあり、それらは科目Aでも科目Bでも同じだからです。<br />
科目Aは、用語や概念に関する問題であり、科目Bは、それらを文章の中に散りばめて事例風に仕立てた問題です。<br />
科目Aの過去問題を数多く解けば、科目Bの問題もできるようになります。</p>
<p>アルゴリズムとプログラミングの問題を短い時間で解くコツは、いくつかあります。<br />
ただし、コツだけがわかっても、プログラミングの経験がないと、問題を解くこと自体が困難でしょう。</p>
<p>もしも、まったくプログラミングの経験がないなら、この機会に、何らかのプログラミング言語でプログラミングの学習をしてください。<br />
どのプログラミング言語でもOKですが、オブジェクトを使った問題も出るので、オブジェクトを使えるJava、C#、Pythonなどの言語がお勧めです。<br />
学習してほしいテーマは、2つあります。<br />
1つは、<strong>変数、配列、関数、オブジェクト、演算子、分岐、繰り返し、など「プログラムの基本要素」のカテゴリ</strong>です。<br />
もう1つは、<strong>ソート、サーチ、リスト、木、など「データ構造およびアルゴリズム」のカテゴリ</strong>です。</p>
<p>それぞれ、1冊にまとめられた教材があるので、それらを使って学習してください。<br />
「プログラミングの諸分野への適用」のカテゴリに関しては、プログラミングの経験があれば問題を解けますので、心配無用です。</p>
<p>プログラミングの経験をして、プログラミングとアルゴリズムの勘所をつかんだなら、短い時間で解くコツを意識して問題を解いてください。<br />
以下にコツを示します。</p>
<div class="card-panel mag_h30 c-round">
●アルゴリズムとプログラミングの問題を短い時間で解くコツ（1）</p>
<p>問題の多くは、<strong>プログラムの一部が空欄になっていて、空欄に入る正しいプログラムを選択肢から選ぶ、という内容</strong>になっています。</p>
<p>選択肢があるのですから、<span style="background-color: #c0e7f9;">選択肢を大いにヒントにしてください。</span><br />
もしも、正解を選べなかったら、正しくないと思われるものを消してください。選択肢が減ると「あっ、そうか！」と気が付く場合がよくあります。
</div>
<div class="card-panel mag_h30 c-round">
●アルゴリズムとプログラミングの問題を短い時間で解くコツ（2）<br />
プログラムを読むとは、データの入れ物である変数に具体的な値を想定して、処理の流れと変数の値の変化を追いかける（トレースする）ことです。<br />
暗算でもわかるような単純な値を想定して、プログラムを読んでみましょう。<br />
そうして、空欄にたどり着いたら、選択肢の変数に具体的な値を設定すれば、正しいものを選べるはずです。
</div>
<div class="card-panel mag_h30 c-round">
●アルゴリズムとプログラミングの問題を短い時間で解くコツ（3）<br />
繰り返し処理を読み取ることが苦手、という受験者が多いようです。<br />
繰り返し処理を読み取るコツは、<span style="background-color: #c0e7f9;">繰り返しの最初の1回目の処理における具体的な値を想定して、その値で成り立つ選択肢を選ぶこと</span>です。<br />
繰り返しの最初から最後までを一気にイメージすようとするから難しいのです。<br />
<strong>最初の1回目の処理だけをイメージすれば難しくありません。</strong>
</div>
<div class="card-panel mag_h30 c-round">
●アルゴリズムとプログラミングの問題を短い時間で解くコツ（4）<br />
「プログラミングの諸分野への適用」のカテゴリの問題は、一見して難しそうですが、実はそうではありません。<br />
問題に示された手順や数式とプログラムを対応付ければ、問題を解けるようになっています。</p>
<p>ただし、それができるのは、<strong>プログラミングの経験があってこそ</strong>です。<br />
したがって、アルゴリズムとプログラミングの問題を短い時間で解くには、なんと言ってもプログラミングの経験が重要なのです。
</div>
<hr class="mag_tp50 mag_bt50" />
<p>今回は、「2進数と論理演算がまったくわかりません」「科目Bの問題を解くのに時間がかかってしまいます」というお悩みにお答えしました。<br />
同じお悩みをお持ちの皆さんの参考になれば幸いです。</p>
<p>それでは、またお会いしましょう！</p>
<p>SEプラス公式YouTubeのIT教育チャンネルでも、矢沢のお悩み相談室シリーズを公開しています！<br />
過去問題の活用方法と試験前の準備について語っているシリーズ2の動画は<a href="https://youtu.be/c0T-boYQvlM">こちら</a>から！<br />
これから試験勉強をはじめる方は、ぜひ動画もご確認ください！</p>
<style>
h4 {
  font-size: 1.1rem;
}
h3 + h4 {
  margin: 1em 0 1em;
}
div.card-panel {
  padding: 3rem;
}
@media screen and (orientation: portrait){
div.card-panel {
  padding: 2rem;
}
}
div.card-panel > h3 {
  font-size: 1.2em;
  padding-left: 1em;
  border-left: 5px solid #3f51b5;
}
div.card-panel > h3:first-of-type {
  margin-top: 0;
}
div.card-panel .chip {
    background-color: #3f51b5;
}
</style><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/consultation_room/fe3/">「2進数と論理演算が難しい…」「科目Bを時間内で解くコツは？」｜基本情報お悩み相談室</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
		<item>
		<title>論理演算｜やさしい基礎理論</title>
		<link>https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kind_basic_theory/logicaloperations/</link>
		<pubDate>Thu, 04 Apr 2024 02:51:55 +0000</pubDate>
		<dc:creator><![CDATA[矢沢 久雄]]></dc:creator>
				<category><![CDATA[基礎理論]]></category>
		<category><![CDATA[論理演算]]></category>
		<category><![CDATA[過去問演習]]></category>

		<guid isPermaLink="false">https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/?post_type=kind_basic_theory&#038;p=8264</guid>
		<description><![CDATA[<p>この連載は、基本情報技術者試験の受験者を対象としたものです。 多くの受験者が苦手としている「情報の基礎理論」の分野から毎回1つずつテーマをあげて、やさしくポイント解説と問題解説を行います。 苦手分野を克服して、試験の得点 [&#8230;]</p>
<p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kind_basic_theory/logicaloperations/">論理演算｜やさしい基礎理論</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>
この連載は、基本情報技術者試験の受験者を対象としたものです。</p>
<p>多くの受験者が苦手としている「情報の基礎理論」の分野から毎回1つずつテーマをあげて、やさしくポイント解説と問題解説を行います。</p>
<p>苦手分野を克服して、試験の得点をアップしましょう。<br />
今回のテーマは、<span class="bold">論理演算</span>です。
</p>
<h2>論理演算の種類</h2>
<p>
「論理演算」は、命題を対象とした演算です。命題とは、真か偽かを判断できる文や式のことです。<br />
たとえば、「5は3より大きい（真と判断できる）」や「3は5より大きい（偽と判断できる）」などが命題です。</p>
<p>よく使われる論理演算の種類は、以下4つです。<br />
「<span class="u">and（論理積）</span>」・「<span class="u">or（論理和）</span>」・「<span class="u">not（否定）</span>」・「<span class="u">xor（排他的論理和、エックスオア）</span>」</p>
<p>これらの論理演算で、真と偽を演算して、演算結果も真か偽になります。真と偽のことを「<span class="bold">真理値</span>」と呼びます。</p>
<p>論理演算の意味は、英語の意味と同じです。<br />
andは「かつ」、orは「または」、notは「～でない」、xor（exclusive or）は「排他的にまたは」という意味です。</p>
<p class="grey lighten-5 c-round" style="padding: 1em;">
<span class="bold">A and Bの演算結果</span><br />
「AかつB」という意味なので、AとBの両方が真のときに真となり、その他の場合は偽になります。
</p>
<p class="grey lighten-5 c-round" style="padding: 1em;">
<span class="bold">A or Bの演算結果</span><br />
「AまたはB」という意味なので、AとBのいずれかが真のときに（両方が真でもよい）真となり、その他の場合は偽になります。
</p>
<p class="grey lighten-5 c-round" style="padding: 1em;">
<span class="bold">not Aの演算結果</span><br />
「Aでない」という意味なので、Aが真なら偽になり、Aが偽なら真になります。
</p>
<p class="grey lighten-5 c-round" style="padding: 1em;">
<span class="bold">A xor Bの演算結果</span><br />
「A 排他的にまたは B」という意味なので、AとBの一方だけが真のときに真となり、その他の場合は偽になります。どちらか一方だけが真であることを「排他的（他を排除する）」と呼んでいるのです。
</p>
<p>
A and BやA or Bのように、<span class="u">論理演算を使った式を論理式</span>と呼びます。</p>
<p>以下に論理式で、and、or、not、xorの演算結果を示したものを記載します。<br />
ここでは、AやBという変数ではなく、真および偽という値で、論理式と演算結果を示しています。
</p>
<div class="card-panel mag_h30 c-round">
【論理演算の結果】</p>
<p>（1）<span class="bold">and（論理積、かつ）</span></p>
<p class="grey lighten-5 c-round" style="padding: 1em;">
偽 and 偽 ＝ 偽<br />
偽 and 真 ＝ 偽<br />
真 and 偽 ＝ 偽<br />
真 and 真 ＝ 真
</p>
<p>（2）<span class="bold">or（論理和、または）</span> </p>
<p class="grey lighten-5 c-round" style="padding: 1em;">
偽 or 偽 ＝ 偽<br />
偽 or 真 ＝ 真<br />
真 or 偽 ＝ 真<br />
真 or 真 ＝ 真
</p>
<p>（3）<span class="bold">not（否定、～でない）</span></p>
<p class="grey lighten-5 c-round" style="padding: 1em;">
not 偽 ＝ 真<br />
not 真 ＝ 偽
</p>
<p>（4）<span class="bold">xor（排他的論理和、排他的にまたは）</span></p>
<p class="grey lighten-5 c-round" style="padding: 1em;">
偽 xor 偽 ＝ 偽<br />
偽 xor 真 ＝ 真<br />
真 xor 偽 ＝ 真<br />
真 xor 真 ＝ 偽
</p>
<p>論理演算は、プログラムの分岐処理やデータベースの検索などで、いくつかの条件（条件は命題の一種です）を結び付けたり、条件を否定したりするときに使われます。</p>
<p>真と偽の真理値を1と0の数値に対応させると、論理演算は2進数の演算であるとみなせます。<br />
たとえば、真 and 真 ＝ 真は、1 and 1 ＝ 1という2進数の演算とみなせます。<br />
コンピュータの内部では、電気信号で表された2進数を演算する仕組みとして、論理演算が使われています。</p>
<h2>ド・モルガンの法則</h2>
<p><strong>ド・モルガンの法則</strong>は、論理式を変形する法則です。<br />
以下にド・モルガンの法則を示します。</p>
<div class="card-panel mag_h30 c-round">
【ド・モルガンの法則】</p>
<p class="grey lighten-5 c-round" style="padding: 1em;">
法則（1） : <span class="bold">not (A and B) ＝ not A or not B</span><br />
「A and Bの結果をnotした論理式は、not Aとnot Bをorした論理式と等しい（論理式を変形できる）」
</p>
<p class="grey lighten-5 c-round" style="padding: 1em;">
法則（2） : <span class="bold">not (A or B) ＝ not A and not B</span><br />
「A or Bの結果をnotした論理式は、not Aとnot Bをandした論理式と等しい（変形できる）」
</p>
</div>
<p>ド・モルガンの法則は、人間の感覚として、すんなり理解できます。</p>
<p>例として、法則に示された論理式のAを「美味しい」、Bを「安い」として、and、or、notを「かつ」「または」「～でない」に置き換えてみましょう。</p>
<p>法則の（1）は「（美味しい、かつ、安い）でない ＝ 美味しくない、または、安くない」です。<br />
法則の（2）は「（美味しい、または、安い）でない ＝ 美味しくない、かつ、安くない」です。</p>
<p>どちらも、人間の感覚として、すんなり理解できるでしょう。</p>
<h2>論理演算に関する問題の例（その1）</h2>
<p>論理演算に関する問題を2つ紹介しましょう。<br />
はじめは、論理式の真理値から命題の真理値を求める問題です。</p>
<div class="card-panel mag_h30 c-round">
<p><span class="chip">問1（出典：H31春問3）</p>
<p>Ｐ、Ｑ、Ｒはいずれも命題である。命題Ｐの真理値は真であり、命題 (not Ｐ) or Ｑ及び命題 (not Ｑ) or Ｒのいずれの真理値も真であることが分かっている。Ｑ、Ｒの真理値はどれか。ここで、Ｘ or ＹはＸとＹの論理和、not ＸはＸの否定を表す。</p>
<figure style="display:block;width:100%; max-width:290px;margin: 0 auto;"><figcaption>　</figcaption><div class="material-placeholder"><img src="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/wp-content/uploads/2024/04/138a6c58f28316f3edc948eea0a51128.jpg" alt=""></div>
</figure>
</div>
<p>
＜解説＞<br />
一見して難しそうな問題に思えるかもしれませんが、論理演算の意味を知っていれば簡単に解けますので、落ち着いて順番に論理式を見ていきましょう。
</p>
<p>
まず、P ＝ 真なので、not P ＝ 偽です。<br />
次に、not P or Q ＝ 偽 or Q ＝ 真なので、Q ＝ 真です。<br />
次に、Q ＝ 真とわかったので、not Q ＝ 偽です。<br />
次に、not Q or R ＝ 偽 or R ＝ 真なので、R ＝ 真です。
</p>
<p>
以上のことから、PとQは、どちらも真であり、選択肢エが正解です。
</p>
<h2>論理演算に関する問題の例（その2）</h2>
<p>
次は、論理式を変形する問題です。<br />
ド・モルガンの法則を使うことで、問題に示された複雑な論理式をシンプルな論理式に変形できます。<br />
この問題では、and、or、notを・、＋、－（上付きのバー）で示しています。
</p>
<div class="card-panel mag_h30 c-round">
<p><span class="chip">問2（出典：H21春問3）</p>
<figure style="display:block;max-width:100%; max-width:600px;margin: 0 auto;"><figcaption></figcaption><div class="material-placeholder"><img src="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/wp-content/uploads/2024/04/fb127d914c59745c3dbdfe2bb12b9883.jpg" alt=""></div>
</figure>
</div>
<p>
＜解説＞<br />
問題に示された論理式を、and、or、notを使った表記にすると、not ((not A or B)and(A or not C))になります。<br />
これを見て「andの演算結果がnot演算されているので、ド・モルガンの法則を使って式を変形できる」と気付いてください。
</p>
<p>下記に、式を変形する手順の例を示します。</p>
<div class="card-panel mag_h30 c-round">
<p><span class="chip">ド・モルガンの法則を使って式を変形する手順の例</p>
<p>（1）<span style="color: red; ">not </span> (<span style="color: orange; ">(not A or B)</span> and <span style="color: blue; ">(A or not C)</span>)　・・・<span style="color: red; ">not</span> (<span style="color: orange; ">□</span> and <span style="color: blue; ">△</span>)の形式である。<br />
（2）<span style="color: red; ">not</span> <span style="color: orange; ">(not A or B)</span> or <span style="color: red; ">not</span> <span style="color: blue; ">(A or not C)</span>　・・・<span style="color: red; ">not</span> <span style="color: orange; ">□</span> or <span style="color: red; ">not</span> <span style="color: blue; ">△</span>に変形する。<br />
（3）<span style="color: red; ">not</span> <span style="color: orange; ">not A</span> and <span style="color: red; ">not</span> <span style="color: blue; ">B</span> <span style="color: gray; ">or not (A or not C))</span>　・・・式の前側を<span style="color: red; ">not</span> <span style="color: orange; ">□</span> and <span style="color: red; ">not</span> <span style="color: blue; ">△</span>に変形する。<br />
（4）<span style="color: fuchsia; ">A</span> <span style="color: gray; ">and not B or not (A or not C)</span>　・・・not not A＝Aなので<span style="color: fuchsia; ">A</span>に変形する。<br />
（5）<span style="color: gray; ">A and not B or</span> <span style="color: red; ">not</span> <span style="color: orange; ">A</span> and <span style="color: red; ">not</span> <span style="color: blue; ">not C</span>　・・・式の後側を<span style="color: red; ">not</span> <span style="color: orange; ">□</span> and <span style="color: red; ">not</span> <span style="color: blue; ">△</span>に変形する。<br />
（6）<span style="color: gray; ">A and not B or not A and</span> <span style="color: fuchsia; ">C</span>　・・・not not C＝Cなので<span style="color: fuchsia; ">C</span>に変形する。
</div>
<p>A and not B or not A and Cに変形できたので、選択肢アが正解です。</p>
<div class="divider mag_tp50 mag_bt30"></div>
<p>基本情報技術者試験の公開問題を見ると、過去に出題された問題の再利用が多いことがわかります。<br />
したがって、試験に合格するために最も効率的で効果的な学習方法は、できなかった問題があれば、できるようになるまで練習することです。<br />
もしも、今回取り上げた問題がすぐにできなかったら、できるようになるまで練習してください。
</p>
<p>それでは、またお会いしましょう！</p>
<style>pre{background:#263238!important;border-radius:unset;}pre:not([class*="language-"]){font-family:'Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;color:#ccc;font-size:1em;padding:1em;}ol.background{padding-left:3em!important;}@media only screen and (max-width:600px){ol{padding-left:1em}dd{margin-left:2em}}.underline{border-bottom:1px solid;}code{padding: 0.15em 0.25em;}pre, code{background: #263238;color: #eceff1;border-radius: unset;font-size: 1em;line-height: 1.8;position: relative;}article, pre, code {
    font-family: 'consolas','Courier New',"HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;
}
img{width: 100%;}
article, pre, code {font-family: "Courier New","HCo Gotham SSm",Gotham,"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic ProN","Hiragino Sans","BIZ UDPGothic",Meiryo,sans-serif!important;}
</style><p>The post <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi/kind_basic_theory/logicaloperations/">論理演算｜やさしい基礎理論</a> first appeared on <a href="https://www.seplus.jp/dokushuzemi/ec/fe/fenavi">基本情報技術者試験 受験ナビ｜科目A・科目B対策から過去問解説まで 250本以上の記事を掲載</a>.</p>]]></content:encoded>
			</item>
	</channel>
</rss>
