「8ビットの2進データXと00001111について、ビットごとの論理積をとった結果はどれか。ここでデータの左方を上位、右方を下位とする。」という問題で。
答えは「上位4ビットが全て0になり、Xの下位4ビットがそのまま残る。」らしいんですが。
なぜそうなるのか・・・さっぱりです。
理由や計算過程などありましたら、具体的に説明いただけないでしょうか。
また、もしこの辺りの話題に役立ちそうなIT本がありましたら、おすすめいただければ…と思います。
よろしくお願い致します。
論理積(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をとる
===
ありがとうございます!
論理積(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をとる
===
詳しく説明していただきありがとうございます!
確かに、xと0の積は0ですし、xと1の積はxが残りますね!!
助かりました(^^;)
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となります。
ありがとうございます、勉強になります!
詳しく説明していただきありがとうございます!
2018/10/30 19:13:57確かに、xと0の積は0ですし、xと1の積はxが残りますね!!
助かりました(^^;)