IPアドレス・ネットマスクの変換・チェック・統合・除外、国判定を簡単に。

こんな機能欲しいけど、自分で作るの面倒くさい!みたいな思いつきを
是非Twitterで意見投げてみてください。
時間は掛かるかもしれませんがコツコツ頑張るかも!?
Twitterリンクは下部)

IPアドレスから地理的位置情報(GeoIPLocation)の検索機能を公開しました。

Google or AdMax Promotion (ipvtop)

255までの数値を紙とペンでビットパターンに変換する方法

IPアドレスの計算やビットパターンの確認では、
Windows電卓やツールなどを利用すると簡単です。
しかし、そうしたツールがない状態でビットパターンを求めたい場合には、
紙とペンを使って計算で求めることもできます。
ここでは255までの数値を単純作業でビット化する手順をご紹介します。

この方法はあくまでも自己流です。
もっと簡単な方法があったらTwitterなどで教えてください。
この方法は引き算しかしないので、ミスは少ないと思いますが。

255までの数値を紙とペンでビットパターンに変換する方法

プロモーション

Google or AdMax Promotion (ipvpos)

試験会場などで、問題用紙の空きスペースで、
ちょっとビットパターンを確認したい場合には、
以下のように紙に書きながら、単純作業でビットを求めます。

STEP1

まず、左から1~8の数字を書きます。
次にその上にでも、右から2の乗数を順に書きます。

この値を利用して計算していきます。

numtobit_st01

01_ベースの値を準備ステップ1

 

STEP2

①次に求めたい数値を右にでも書きます。
ここでは「123」のビットパターンを求めることとします。

②次に123が各2乗の値の中で納まる位置を探します。
比較は以下の式で行います。

2^n => NUM > 2^n-1
※下側の値に一致した場合は、上を採用します。

「128」が上の値です。
「64」が下の値になります。

③対象の値が収まる範囲の上側の数値の下に「1」を書きます。

④対象の値が収まる範囲の下側の値「64」を、求める値の下に書き、
マイナスを付けて引き算します。

⑤引いた余りを求めて書きます。「123-64=59」

次は求める値を「59」から再び開始します。

この作業の繰り返しを行います。

本当に単純作業です。

最後が1桁になるまで繰り返します。

numtobit_st02

02_求める値を記載計算ステップ2

 

STEP3

①「59」が収まる位置を求めます。

②上が「64」下が「32」です。

③上の値「64」の下に「1」を書きます。

④下の値「32」を求める値から引き算します。

⑤余りは「59-32=27」です。

numtobit_st03

03_求める値を減算で求め計算ステップ3

 

STEP4

①「27」が収まる位置を求めます。

②上が「32」下が「16」です。

③上の値「32」の下に「1」を書きます。

④下の値「16」を求める値から引き算します。

⑤余りは「27-16=11」です。

numtobit_st04

04_求める値を減算で求め計算ステップ4

 

STEP5

①「11」が収まる位置を求めます。

②上が「16」下が「8」です。

③上の値「16」の下に「1」を書きます。

④下の値「8」を求める値から引き算します。

⑤余りは「11-8=3」です。

numtobit_st05

05_求める値を減算で求め計算ステップ5

 

STEP6

①「3」が収まる位置を求めます。

②上が「4」下が「2」です。

③上の値「4」の下に「1」を書きます。

④下の値「2」を求める値から引き算します。

⑤余りは「3-2=1」です。

ここで解が1桁になりました。

ここで求まった1桁は最終ビットになります。
一番右にそのまま書きます。

これでビットの1が立つ部分が求まりました。

numtobit_st06

06_求める値を減算で求め計算ステップ6

 

STEP7

「1」が立たなかった部分すべてに「0」を書きます。

ズバリ、このビットパターンが、
求めたかった値の「123」を示しています。

「0111 1011」

numtobit_st07

07_空ビットに0を記入し完成

 

Windows電卓で確認します。
確認方法は以下でご紹介しています。

「123」と入力した、直下に表示されているビットパターンと、
求めたパターンは一致しています。

numtobit_st08

08_「123」の検算

 

正しく求められています。

最終チェックとして確認する点として以下を確認します。

奇数は最終ビットが「1」
偶数は最終ビットが「0」になります。

その為「123」の時点で最終ビットは「1」が分かっています。

先に「1」と立てておくことで、
最後に求めた値とビットが一致していれば、計算はほぼOKと言えます。

 

このことからもわかるように、

ネットワークIPアドレス(ホスト部の下位ビットがすべて0)
必ず偶数ということも言えます。

 

偶数の場合の例

次に偶数の場合として1を加えた「124」を見てみます。

この場合も手順は同じですが、
「124」では4回目の時に「4」が求める値になります。

4は「2の2乗」に一致することになります。
しかし、求める式では「」です。

2^n => NUM > 2^n-1

よって、採用される位置は「8=> (位置) > 4」となり、
上が8、下が4になります。

「8」の下に「1」を書き、下の値「4」で引き算すると、
解が「0」となり、1桁になります。

1桁になったら、それは最終ビットにして計算終了です。

求めたビットパターンは「0111 1100」で「124」になっています。

「123」=「0111 1011」でしたから、
1を加算すると繰り上がって「0111 1100」となりますので、
辻褄も合っています。

numtobit_st09

09_「124」の場合の偶数パターン

 

こうして偶数の場合には、スコーンと「0」のタイミングが現れて、

計算終了という形になるわけです。

 

本当かいな?という方へ

まぁ、私も何となくこの方法を見つけた時は、
本当かいなと思ったのですが、ちゃんと求められるんですね。

以下は疑い深い方向けに・・・

「0」の場合

当然、1桁なので最終ビットに「0」で終了

numtobit_st10

10_「0」の場合

 

「1」の場合

同じく、1桁なので最終ビットに「1」で終了

numtobit_st11

11_「1」の場合

 

「255」の場合

最大値で答えが「11111111」になるので、
これは手間がかかりそうと直感で感じますね。

まさに、計算回数最大の7回で「11111111」が求まります。

numtobit_st12

12_「255」の場合

 

「192」の場合

よく見るプライベートネットワークで見る
「192.168.0.0」の「192」です。

ビットパターンを知っていると「11000000」という
すっきりしたパターンだと思うわけですが、
計算でそんなのが出るのか?

そう疑いたくなるわけですが、

計算2回目でいきなり「0」となって、
最終ビットにセットして終了。
「11000000」が求まります。

numtobit_st13

13_「192」の場合

 

「129」の場合

では、また面白いビットパターンとして、
「129」というのもあります。

これは「10000001」というビットになります。

計算してみると、そうですね。
1回目で余りが「1」で最終ビットに「1」を立てて終了。

numtobit_st14

14_「129」の場合

 

ちょっと気持ちいいと思いませんか?

 

さいごに

どうです?
面倒なのは「255」位で、
少なくとも7回の計算で正確にビットパターンが求められます。

手で指折り求められる人はいいとして、
紙上で計算して求められるので、後から見直すこともできます。

ちょっとビットパターンを求めてみたくなりませんか?

 

プログラムを書いたりしていて、
検算をしたりなどを繰り返しているうちに、

偶然この方法を見つけたのですが、
これって既に有名な方法なんですかね?

 


AdMax Promotion

公開日:
最終更新日:2019/06/20

シェア頂けると新機能開発の励みになります!!

最後までお読みいただきありがとうございました。
便利!と思って頂けたらシェアを是非お願いします。
ご意見・ご批判でも感じた事を気にせずご指摘ください。

アカウント新規作成の為、是非フォローもお願いします。(無言OK)

※このページでこんな情報も一緒に見れたら便利!などの
アイディア・ご意見もお聞かせください。

また弊サイトはすべて広告費と個人の自腹にて運営・開発を行っています。
皆様、お仕事中でお忙しいことと存じますが、
ご興味がおありの広告が目に留まりましたら
広告主様のサイトもご覧いただけますと励みになります。

QRコードからもこのURLを開けます。
リンク先URL: https://ipvx.info/ip_cal/numtobit/


AdMax Promotion

サイト内コンテンツ
すべて展開 | すべて省略

Google or AdMax Promotion (ipvlink)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です