進数とは
数を表すときに使う数字の種類を決める表記方法です。2進数は0と1、8進数は0~7、10進数は0~9、16進数は0~9とA~Fを使います。8進数1桁は2進数3桁、16進数1桁は2進数4桁に対応します。
入力では2進数の0b、8進数の0o、16進数の0xに対応し、選択した進数と一致しない場合はエラーになります。10進数の0dには対応しません。
2進数を10進数へ変換する方法
右端から各桁へ1、2、4、8…の重みを割り当て、1になっている桁の重みを合計します。たとえば1010は8 + 2で10です。
10進数を2進数へ変換する方法
整数を2で繰り返し割り、余りを逆順に並べます。本ツールでは入力をBigIntとして扱い、通常のJavaScript Numberで正確に表せない大きな整数も桁落ちさせずに変換します。
16進数と2進数の関係
16進数1桁は2進数4桁へ対応します。たとえば16進数FFは、Fをそれぞれ1111へ置き換えた2進数11111111、10進数255です。
負数について
このツールでは負数を「-」付きの符号と絶対値で表示します。たとえば10進数-42は2進数-101010です。bit幅の指定が必要な2の補数表現ではありません。
大きな整数の計算
大きな整数でも桁落ちしないよう、JavaScriptのBigIntを利用して計算しています。入力全体の文字を検証したあと、各桁を順にBigIntへ積み上げるため、不正文字の手前だけを部分変換しません。
よくある質問
大きな整数も変換できますか?
はい。符号とプレフィックスを除く4096桁の入力上限内で、BigIntを利用して正確に変換します。
小数は変換できますか?
初版は整数のみです。小数点や指数表記を含む入力はエラーになります。