問題ID: 19186

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2019-6-6 17:32 | 最終変更
160828  常連   投稿数: 19
MACアドレス「ca00.03c4.0000」を24ビットごとに区切って
その間にFFFEを追加し、先頭7ビット目を反転させて
リンクローカルユニキャストアドレスを求めますが、
計算方法が分かりませんのでご教授下さい。

認識↓
「ca00.03c4.0000」
 ↓
ca0003 FFFE c40000 24ビットごとに区切る。
 16進数は2進数の4ビット分に相当するので↓

1100 1010 0000 0000 0000 0011 FFFE 1100 0100 0000 0000 0000 0000
2進数に変換した上記2進数の先頭7ビット目を反転させるので
1100 1000 0000 0000 0000 0011 FFFE 1100 0100 0000 0000 0000 0000
全角の箇所が反転されて0になる。
これを16進数に戻す?
この時点でもう正答の:FE80::C800:3FF:FEC4:0
にどのように変換すればよいのか不明です。

因みに解説に載っている
変換方法の画像は理解できています。
なのに分かりません(。´・ω・)?

多分根本的に間違ってますので
御教授お願い致します。
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2019-6-6 21:48 | 最終変更
arashi1977  長老 居住地: 広島  投稿数: 1715
ほぼできてますよ!

やり方はこうです。
・「ca00.03c4.0000」を半分に分けるので「ca 00 03」と「c4 00 00」になる
・先頭7ビット目(最初の1バイト下から2番め=10進数で言う"2")を反転させる。ここでは「ca」が該当する1バイトなので「1100(C=12=8+4) 1010(A=10=8+2)」→「1100(C=12) 1000(8+0=8)」となる
・前半が「c8 00 03」、後半が「c4 00 00」となることが確定したので、インターフェースIDは間にFFFEを入れて「C800:03FF:FEC4:0000」となる
・リンクローカルなので「FE80::/64」となり、インターフェースIDとくっつけて「FE80::C800:03FF:FEC4:0000」→省略できるところは省略して「FE80::C800:3FF:FEC4:0」となる
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2019-6-6 23:22
160828  常連   投稿数: 19
なるほどです!
ありがとうございました(/・ω・)/

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.