keisoku

N進数の相互変換

2進・8進・10進・16進はもちろん、2〜36進数まで自由に相互変換。入力した数値を各基数で一覧表示します。

最終更新:

入力

入力の基数
出力の基数(主要な値)

計算結果

2進数(バイナリ)での表現

11111111

入力: 10進数(デシマル)(10進換算 255)

2進数(バイナリ)

11111111

8進数(オクタル)

377

10進数(デシマル)

255

16進数(ヘキサ)

ff

基数接頭辞表現
2進数0b11111111
8進数0o377
10進数—255
16進数0xff

計算方法・使い方

  • 入力の基数と出力の基数をそれぞれ選び、変換したい数値を入力すると、指定した基数での表現に加えて2進数・8進数・10進数・16進数の値を同時に確認できます。
  • 16進数以上の基数では、10以降の桁をアルファベット(a〜z)で表します。入力は大文字・小文字どちらでも受け付け、結果は小文字で表示します。
  • 先頭にマイナス記号を付けると負数として扱い、結果にも符号を付けて表示します。値が0のときは符号は付きません。
  • 桁を読みやすくするための区切りとして、アンダースコア(_)・カンマ(,)・空白を入力に含めても問題ありません。自動的に取り除いて計算します。
  • 小数や指数表記には対応していません。整数のみを入力してください。選んだ基数に含まれない桁を入力した場合はエラーを表示します。
  • 桁数の大きな値でも正確に計算できるよう内部で多倍長整数として処理するため、一般的な電卓では誤差が出るような大きな数でも正しい結果が得られます。

手計算の手順

10進数を2進数に直すには、2で割った余りを下から読みます。202なら、202÷2=101余り0、101÷2=50余り1、50÷2=25余り0、25÷2=12余り1、12÷2=6余り0、6÷2=3余り0、3÷2=1余り1、1÷2=0余り1となり、余りを最後から並べた11001010が答えです。

逆に2進数を10進数にするには、各桁に右から1、2、4、8…と2の累乗を掛けて足します。11001010は128+64+8+2=202です。16進数とは2進数を右から4桁ずつ区切ると速く変換でき、1100は12(c)、1010は10(a)なので202は16進数でcaです。8進数なら3桁ずつ区切ります。

実務でよく出る例

進数変換は、プログラミング以外の身近な場面でも意外とよく使われます。

  • カラーコード:#1E90FFは赤1E、緑90、青FFの3つに分け、それぞれを16進数から10進数に変換するとRGB(30, 144, 255)になります。6桁をまとめて入力すると1つの大きな数として扱われるので、2桁ずつ入力してください。
  • ファイルのパーミッション:chmodの755は8進数です。2進数に直すと111101101で、3桁ずつ区切った111・101・101がrwx・r-x・r-xに対応します。644なら110100100でrw-r--r--です。
  • 上限値:nビットで表せる最大値は2のn乗−1です。8ビットなら255(ff)、16ビットなら65,535(ffff)です。

入力時の落とし穴

プログラムで使う接頭辞の「0x」「0b」「0o」は入力に含めないでください。16進数として「0xff」を入力すると、xが16進数の桁ではないためエラーになります。さらに注意したいのが36進数で、xは33を表す正しい桁なので「0x1f」はエラーにならず、10進数で42,819という別の値として解釈されてしまいます。

結果では先頭のゼロが省かれます。8ビット単位などで桁数をそろえたいときは、左側を0で埋めてください(5なら101を00000101とします)。

負の数と2の補数

このツールの負数は、絶対値の前にマイナス記号を付ける表し方です(−5は2進数で−101)。コンピュータ内部で使われる2の補数表現とは異なります。nビットの2の補数を知りたいときは、2のn乗から絶対値を引いた値を入力します。8ビットで−5なら256−5=251を入力すると11111011が得られ、これが−5の2の補数表現です。

逆に、11111011を符号付き8ビットとして読むときは、10進数に直した251から256を引いて−5に戻します。最上位ビットが1なら負の数、0なら正の数と判断できます。

よくある質問

2進数を16進数に変換するにはどうすればいいですか。
入力の基数を2進数、出力の基数を16進数に選び、変換したい2進数を入力するだけで変換できます。指定した16進数だけでなく、2進数・8進数・10進数の値も同時に一覧表示します。
16進数より大きい基数ではどのように桁を表しますか。
16進数以上の基数では、10以降の桁をアルファベット(a〜z)で表します。入力は大文字・小文字どちらでも受け付け、結果は小文字で表示します。本ツールは2〜36進数まで対応しています。
小数や大きな桁数の値も変換できますか。
小数や指数表記には対応しておらず、整数のみの入力となります。ただし内部では多倍長整数として処理するため、一般的な電卓で誤差が出るような桁数の大きな整数でも正確に変換できます。

お客様の声

このツールを使った感想をお聞かせください。

レビューを投稿する

計算結果の誤りや不具合を見つけたら、こちらをオンにしてご報告ください。

評価

  1. ホーム
  2. 趣味
  3. N進数の相互変換