IPアドレスを順に入力して値・ビットパターンを確認する(環状シフト)
Windows電卓のプログラマモードを利用して、
IPアドレスの演算は少し面倒な入力が必要になります。
基本的には8bit単位の数値ごとに個別に計算するなどをすればいいのですが、
IPアドレス・サブネットマスクからネットワークアドレスを、
求めるような場合には、こうした電卓の利用も1選択肢です。
まずは目的のIPアドレスの値を求める方法をご紹介します。
2015/02/18追記
ここではWindows電卓を利用した計算方法ですが、
こうした方法は覚えておくと何かの時に便利です。
ただ常用するにはちょっと面倒くさいので、
以下のツールを公開しています。
IPアドレスを順に入力して値・ビットパターンを確認しよう(環状シフト)
ここでは、IPアドレス「192.168.0.254」を、
Windows電卓に入力する例をご紹介します。
Windows電卓のプログラマモードで立ち上げます。
[10進]・[Dword]が選択されていることを確認し「192」と入力します。
入力するとすぐに下部にビットパターンが表示されます。
第1オクテット(左から8bit)の入力が終わったので、
次の第2オクテットの入力に備え、
[RoL]を8回クリックします。
※「RoL」は左循環ビットシフトです。
この場合「192」を入力した時点では下8bit以外はすべて0ですので、
循環して最上位ビットが桁あふれし、
最下位ビット側から挿入されてきますが、
上位ビット(24桁)の「0」のみが循環してくるためこの方法が利用できます。
「RoL」をクリックするたびに、ビット文字列が左に移動します。
8回のクリックで8bit移動し、値も変更されます。
ビットシフトしたら第2オクテットの値を加算します。
[+]をクリックして次に第2オクテットの「168」を入力し「=」で和を求めます。
表示窓に和が表示されたら、
次は第3オクテットですが、第3オクテットは「0」の為、値の加算は不要です。
第4オクテットの加算準備の為、16bitをシフトします。
この時点で値が負数に変わっているはずです。
これは、ビットパターンの最上位ビットは符号化ビットと解釈される為です。
符号ありintegerでは、このように多くのIPが負数になっています。
先ほど同様に[RoL]を16回クリックして、16bit移動します。
ビットシフトが完了したら[+]をクリックします。
最後の第4オクテットの値「254」を入力し「=」で和を求めます。
これでIPアドレスの値をすべて入力しました。
192.168.0.254は、「-1062731522」と表示されているはずです。
[2進]を選択して、表示窓をバイナリ表示に切り替えます。
表示された値を右クリックして[コピー]します。
コピーした値は「11000000101010000000000011111110」となっています。
8ビットごとに分割します。
「11000000.10101000.00000000.11111110」
検算
今回は、各ビットごとに検算します。
- 11000000:192
- 10101000:168
- 00000000:0
- 11111110:254
となって、正しくIPアドレスとして入力できていることがわかります。
Windows電卓では、このビットパターンよりも、
表示された数値の方が、処理がしやすいので、
各IPアドレスを先に計算しておき、
値をコピペしておくなどすると後から計算しやすいでしょう。
備考
今回は[RoL]を利用して連打によるビットシフトしました。
しかし、この方法はすでに入力済みのIPアドレスなど、
既にある値は桁あふれで、末尾ビットに返ってきます。
純粋にビットシフトで桁あふれを無視したい場合には、
以下の方法を利用します。
本サイトで公開しているツールについては、
十分にテストは行っておりますが個人で作成している為、
潜在的なバグがないとは言い切れません。
その為、ツールを用いた結果については十分検証の上ご利用ください。
当サイトおよび、管理人は如何なる損害もその責を負いません。
当サイト内のコンテンツおよび画像において、
出典・引用の外部著作権者の明記がないものは、
すべて管理人による著作物です。
当サイトでご紹介しておりますコンテンツの著作権の放棄は致しません。
サイト内コンテンツを引用される際にはご連絡は不要です。
ただし、出典元として当サイト(個別記事)へのリンクをお願いいたします。
申し訳ございませんが、無断転載、複製をお断りさせて頂いております。
コンテンツを有益であると感じていただけましたら非常に光栄です。
ありがとうございます。
公開日:
最終更新日:2019/06/20