• ベストアンサー

ビットの反転?

0f4d^000f(16進数です) という問題で、わたしの利用している参考書では、下位4ビットを反転させて、答えが0f42となるとありますが、どのような過程でこの結果になったのか全く理解できません。わたしの勉強不足ですが、教えてください。おねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.4

まず0f4d^000fの意味ですが、こればビットの排他的論理和をとることを示します。 では、ビットの排他的論理和とは何かということですが、1ビット単位で考えたとき、 1 ^ 1 = 0 0 ^ 0 = 0 1 ^ 0 = 1 0 ^ 1 = 1 となります。 簡単にいうと、どちらも同じ値(1同士、0同士)の時は、0となり、異なるときは1となります。 上記の0f4d^000fはビットで考えると 0000 1111 0100 1101 = 0f4d 他方のビット 0000 0000 0000 1111 = 000f 一方のビット ------------------------------ 0000 1111 0100 0010 = 0f42 となります。 ここでビットの排他的論理和の性質として 一方が0のビットであれば、結果は他方のビットと同じ値になる。 一方が1のビットであれば、結果は他方のビットを反転した結果となる。という性質があります。 従って、一方のビットから見たとき、左の12ビットは全て0の為、他方のビットの値と同じになります。そして右の4ビットは全て1のため、他方のビットを反転した値となります。従って、0000 1111 0100 0010 = 0f42 となります。

mori-zou
質問者

お礼

正直びっくりしました。論理的で丁寧で・・。本当に親切に教えてくださってありがとうございます。

その他の回答 (3)

  • ryk1234
  • ベストアンサー率40% (46/113)
回答No.3

No2です >0000 1111 0100 0001 書き間違えました… 0000 1111 0100 1101 0000 0000 0000 1111 0000 1111 0100 0010 失礼致しました

mori-zou
質問者

お礼

わざわざ親切にありがとうございます。

  • ryk1234
  • ベストアンサー率40% (46/113)
回答No.2

0000 1111 0100 1101 0000 0000 0000 1111 0000 1111 0100 0001 一致しなければ[1] 一致すれば[0] となります

mori-zou
質問者

お礼

なるほど。そういうことですか。理解できました。回答ありがとうございました。

  • teo98
  • ベストアンサー率23% (70/303)
回答No.1

代意が分かりませんが、 0f4dの下位4ビット=d=1101です。 反転させると、0010=2です。 つまり、0f42ってことではないのかな

mori-zou
質問者

お礼

題意がわかりにくくてごめんなさい。理解できました。回答ありがとうございました。

関連するQ&A