JavaScript | 数値を指定の基数の形式で文字列に変換(toString() メソッド)

javascrpit JavaScript
スポンサーリンク

初心者でもと理解できるように、実例つきでやさしく説明します。

まず、「toString()」って何?

toString() は、

「数値(Number)を文字列(String)に変える」ためのメソッド
です。

たとえば:

let num = 123;
console.log(num.toString());
JavaScript

➡ 結果は "123"(文字列)になります。

つまり、
数値 → 文字列 に変換してくれる機能です。

でも実は、もうひとつすごい機能が!

toString() はただ文字列にするだけでなく、
「好きな進数で表現できる」 のです✨

基本の書き方

数値.toString(基数);
JavaScript
  • 「基数(きすう)」とは、数を数えるときの「ルール」のこと。
    たとえば:
    • 10進数 → 普通の数字(0〜9)
    • 2進数 → コンピュータの世界で使う(0と1)
    • 16進数 → 色コードなどで使う(0〜9+a〜f)

例1:10進数 → 文字列

let num = 78;
console.log(num.toString());
JavaScript

出力結果:

"78"
JavaScript

ここでは基数を指定していないので、デフォルト(10進数)のままです。

例2:2進数に変換(コンピュータっぽい!)

let num = 78;
console.log(num.toString(2));
JavaScript

出力結果:

"1001110"
JavaScript

これは「78」を**2進数(0と1だけで表す)**に直した結果です。

💡 コンピュータの中では、実際にこうした2進数でデータを処理しています。

例3:16進数(カラーコードでもおなじみ)

let num = 78;
console.log(num.toString(16));
JavaScript

出力結果:

"4e"
JavaScript
  • 16進数では、10〜15 の部分を a〜f で表します。
    → だから「78」は「4e」になります。
  • Webデザインでよく出てくる #ff6600 とかも、実は16進数なんです。

例4:小数でもOK!

let num = 7.5;
console.log(num.toString(2));  // 2進数に
JavaScript

出力結果:

"111.1"
JavaScript

小数点の右側(0.5)も、ちゃんと2進数で表されます!

注意点

① 指定できる基数の範囲

  • 2 ~ 36 の間しか使えません。
  • それ以外を指定するとエラーになります。
console.log((78).toString(40)); // ❌ エラー
JavaScript

RangeError: toString() radix argument must be between 2 and 36

② 数字リテラルにそのまま書くときの注意

この書き方はエラーになります:

123.toString(2);  // ❌ SyntaxError
JavaScript

なぜかというと、JavaScript は「123.」を小数の途中と勘違いするからです。

🟩 対策は2通り!

✅ 括弧で囲む:

(123).toString(2);
JavaScript

✅ ドットの前にスペースを入れる:

123 .toString(2);
JavaScript

ちょっと実践例

▶ 2進数を表示する電卓もどき

let num = 25;
console.log("10進数:", num.toString(10));  // "25"
console.log("2進数:", num.toString(2));   // "11001"
console.log("8進数:", num.toString(8));   // "31"
console.log("16進数:", num.toString(16)); // "19"
JavaScript

結果:

10進数: 25
2進数: 11001
8進数: 31
16進数: 19
JavaScript

まとめ

内容説明
メソッド名toString()
働き数値 → 文字列に変換
オプションtoString(基数) で 2〜36 進数の文字列を作れる
よく使う基数2進数(2)、8進数(8)、16進数(16)
注意点整数リテラルは (123).toString() のように括弧が必要
タイトルとURLをコピーしました