IPアドレス:172.16.1.20
サブネットマスク:255.255.255.128の場合
・ある問題集で、16進数を使って上のIPアドレスからネットワークアドレスを求める場合に、
(1).IPアドレスを16進数→ AC 10 01 14
(2).サブネットマスクを16進数→FF FF FF 80
---------
(3).ネットワークアドレス→ AC 10 01 00
~~
という感じで解答していたのですが、どうやって求めたのか分かりません。(3)の左から6桁と一番右は、(1)と(2)を比較して小さい方をとっていますが、右から2番目だけは1と8を比較して0となっているのはなぜでしょうか?教えてください。
No.6ベストアンサー
- 回答日時:
#5の補足に対して。
> その問題集には「2進数でもよいが桁が大きくなりすぎるので16進数での演算に慣れるように。」と、あったのですが16進数のままでANDをとる方法はないのでしょうか?
そもそも、論理演算自身が1ビットに対して行う演算なので2進数で演算するのが基本です。
255D(=0xff)だとか128D(=0x80)のような「わかりやすい」値ならともかく、変なビットの並びであれば16進数で計算するより2進数で計算する方がよっぽど「自然」です。
その証としてこれまでの回答者の皆さんは、2進数に直して計算する方法で解説していますし、あなた自身も16進数で?だったことが2進数で理解できました。
10進数を16進数に直すには10進数→2進数→16進数とするのが普通です(計算しやすい)。2進数が出た時点で論理演算するのが得策です。なぜなら、2進数→16進数の変換が要らない上に、16進数の方が論理演算しにくいのですから。
その問題集は、問題を解くだけのための解説に陥ってます。
No.4
- 回答日時:
No.3
- 回答日時:
16進で考えると分かりにくいかもしれません。
実際にはこれらの演算は2進で行われますので、2進数に変換してみます。
すると、
(1)10101100 00010000 00000001 00010100
(2)11111111 11111111 11111111 10000000
ですので、この2つのANDを取ると
(3)10101100 00010000 00000001 00000000
となります。
これを16進に戻すと最初の答えになります。
サブネットマスクとはホストアドレスの上位何ビットかをマスクして、サブネットアドレスとホストアドレスに分割するために使用するものなので、一度2進数に変換して考えていただければ分かりやすいと思います。
No.2
- 回答日時:
AND演算は、ビット単位の演算です。
比較する双方のビットが1の時のみ1になります。どちらか片方または双方共に0なら演算結果は0です。
さて、(1)、(2) は、2進数で書くと
(1) 1010 1100 0001 0000 0000 0001 0001 0100
(2) 1111 1111 1111 1111 1111 1111 1000 0000
となり、各ビットをAND演算すると
(3) 1010 1100 0001 0000 0000 0001 0000 0000
となり、16進表現で AC 10 01 00 となります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ネットワーク IPアドレスの範囲ってどうやって求めるんですか? 2 2023/01/05 01:37
- ファイアウォール IPアドレス 1 2022/06/24 19:46
- 固定IP スマホやPCのIPアドレスについて教えてください。 5 2023/07/07 19:53
- 固定IP MACアドレスはLAN内で相手を特定するアドレスですか? PCから監視カメラを閲覧するときに、セグメ 3 2022/07/23 09:04
- FTTH・光回線 グローバルIPアドレスの変更について 1 2022/04/23 05:32
- VPN 接続のたびにIPが変わるVPNサービスが知りたい 2 2022/06/27 02:34
- その他(インターネット接続・インフラ) ブラウザにIPアドレス入力した時 1 2022/06/16 19:08
- その他(インターネット接続・インフラ) アプリ利用者を特定し、裁判に 2 2022/06/09 21:43
- 固定IP iPhoneでのIPv4切り替え方法 3 2022/11/24 22:26
- ネットワーク 一台のサーバーに複数個のIPアドレスを追加出来る事は知っていますが、具体的にどうやるのでしょうか? 4 2022/11/03 20:12
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
ビットシフトってどんな時使うの?
-
シーケンス制御について質問で...
-
16ビットCPUで32ビットの計算方法
-
verilog 符号付加減算(最上位...
-
整数除算の意味とは?
-
シーケンス制御についての質問...
-
03分22秒36のような時間の単位...
-
文字参照は10進数と16進数では...
-
符号無し整数xを右にnビット回転
-
命令について
-
ビットの取り出し方法
-
ライン数とステップ数の違いは?
-
ニーモニックコードを使って割...
-
アセンブラのLA
-
H8/3048 マイコンのプログラム...
-
PIC16F1シリーズマイコンのNCO...
-
アセンブラ言語がわかりません。
-
アセンブラからC言語に変換する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
0xffffとは?
-
8ビットのデータの、先頭ビット...
-
ビットシフトってどんな時使うの?
-
エクセルVBAのIf,Then 構...
-
命令について
-
文字参照は10進数と16進数では...
-
C言語で128bitの2進数のビット...
-
03分22秒36のような時間の単位...
-
シーケンス制御についての質問...
-
verilog 符号付加減算(最上位...
-
算術シフト演算が成り立つ理由...
-
C言語やC++言語でビット毎に値...
-
一般のソフトで画像を扱う場合...
-
ビットの取り出し方法
-
Python: 数値を反転させたい
-
上位ビットと下位ビットの入れかえ
-
MIPSアセンブラの問題です。
-
3進数を10進数に変換
-
16ビットCPUで32ビットの計算方法
-
スロースキャンコンピュータ 加...
おすすめ情報