ITパスポートの勉強をしているのですが、判らないことがあり、質問です。

「8ビットの2進データXと00001111について、ビットごとの論理積をとった結果はどれか。ここでデータの左方を上位、右方を下位とする。」という問題で。
答えは「上位4ビットが全て0になり、Xの下位4ビットがそのまま残る。」らしいんですが。
なぜそうなるのか・・・さっぱりです。
理由や計算過程などありましたら、具体的に説明いただけないでしょうか。

また、もしこの辺りの話題に役立ちそうなIT本がありましたら、おすすめいただければ…と思います。
よろしくお願い致します。

回答の条件
  • 1人20回まで
  • 登録:
  • 終了:2018/10/30 19:15:26
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kaoato No.2

回答回数236ベストアンサー獲得回数86

ポイント400pt

論理積(AND)は、結果として小さいほうを採用することになるから。

ビットごとなので

0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1

計算ルールはこれだけ。

==
「0000」なら、相手がどんな数字(2進数)でも、小さいほうは「0」に確定さてる
「1111」なら、相手がどんな数字(2進数)でも、相手の値がそのまま採用される

=>上位4ビットが全て0になり、Xの下位4ビットがそのまま残る。」

==

知識の部分もあるけど、実感として受け入れられるかどうかなので、
「ANDは小さいほうを採用」みたいな、我流の解釈みたいなのがあると
実感として、そんなもんだと思えると思う。

==

ビットごと
=>2進数の桁単位

1001 0110
0000 1111
-----------
0000 0110

ANDをとる

===

id:moon-fondu

詳しく説明していただきありがとうございます!
確かに、xと0の積は0ですし、xと1の積はxが残りますね!!
助かりました(^^;)

2018/10/30 19:13:57

その他の回答2件)

id:Lhankor_Mhy No.1

回答回数813ベストアンサー獲得回数232

ポイント30pt

論理積とはビット演算で言うと AND です。

2つスイッチを比較して、どちらも1なら1、どちらか片方でも0の場合は0を返します。

no title
id:moon-fondu

ありがとうございます!

2018/10/30 19:00:55
id:kaoato No.2

回答回数236ベストアンサー獲得回数86ここでベストアンサー

ポイント400pt

論理積(AND)は、結果として小さいほうを採用することになるから。

ビットごとなので

0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1

計算ルールはこれだけ。

==
「0000」なら、相手がどんな数字(2進数)でも、小さいほうは「0」に確定さてる
「1111」なら、相手がどんな数字(2進数)でも、相手の値がそのまま採用される

=>上位4ビットが全て0になり、Xの下位4ビットがそのまま残る。」

==

知識の部分もあるけど、実感として受け入れられるかどうかなので、
「ANDは小さいほうを採用」みたいな、我流の解釈みたいなのがあると
実感として、そんなもんだと思えると思う。

==

ビットごと
=>2進数の桁単位

1001 0110
0000 1111
-----------
0000 0110

ANDをとる

===

id:moon-fondu

詳しく説明していただきありがとうございます!
確かに、xと0の積は0ですし、xと1の積はxが残りますね!!
助かりました(^^;)

2018/10/30 19:13:57
id:Asayuri No.3

回答回数309ベストアンサー獲得回数65

ポイント70pt

 
https://wa3.i-3-i.info/word11662.html
 
http://www.it-shikaku.jp/top30.php?hidari=01-01-05.php&migi=km01-01.php
 
論理積とは、論理演算の一つで、二つの命題の いずれも真のときに真となり、
 
それ以外のときは偽となるものです。
 
論理回路や2進数の数値による論理積は、
 
二つの入力の両方が1のときのみ出力が1となり、
 
いずれか一方あるいは両方が0の場合は0となります。
 
 
 
 
 
 

id:moon-fondu

ありがとうございます、勉強になります!

2018/10/30 19:06:34
  • id:jwrekitan
    Lhankor_Mhyさんの回答の通り、「ビット演算」で検索すれば
    判りやすい解説がいくらでも見つかると思います。

    https://ja.wikipedia.org/wiki/ビット演算

    その処理の応用例を知りたいなら、
    「マスク処理」や「フラグ処理」などを調べると良いのではないかと。

    https://ja.wikipedia.org/wiki/マスク_(情報工学)
    https://lambdalisue.hatenablog.com/entry/2013/12/22/041347
  • id:moon-fondu
    カッコいいですね、そんな用語も関係してるなんて。
    調べてみます(^^;

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません