0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JavaScript勉強メモ6章

Posted at

JavaScript勉強メモ6章

6. 長整数

数値型では扱えない大きな整数を扱える仕組み。

  • 長整数リテラル:
    数値の後ろにnをつけたら長整数だよ

    let num = 854n;
    console.log(num);
    >>854n
    
    let num2 = BigInt(1024);/*オブジェクトのコンストラクタでもかけるよ*/
    console.log(num2);
    >>1024n
    

    長整数を使うと、数値リテラルで扱えない(安全でない)大きな数値も演算できるよ

    let num = 9007199254740991n;/*numに安全な最大数を長整数として入れる*/
    cosole.log(num+2n);
    >>9007199254740993n/*ちゃんと計算される*/
    
  • 長整数リテラルで利用可能な演算子
    (長整数に+とか-とか**とか使えるの?)

    • 算術演算子
    console.log(8n / 7n);/*8n÷7n*/
    >> 1n/*答えは整数、小数点以下は切り捨て*/
    console.log(34n % 8n);/*34n÷8nの余り*/
    >> 2n
    console.log(9n ** 3n);/*9nの3n乗*/
    >> 729n
    
  • ビット演算子、シフト演算子

    • ビット演算子:
      2つの数値の関係(2進数にして同じ位の桁を比べる)から新しい数値をつくるよ
      例) 論理積(&):
      k桁目がどっちも1なら新しい数値のk桁目も1。それ以外ならk桁目は0。

      console.log(3n & 4n);
      >>0n
      

      解説
      3と4を二進数で表現して、それぞれの桁の関係を調べる。

      3 = 0 1 1
      4 = 1 0 0
      0 0 0 = 0

      他のも似たルールです。調べてみてください。
      シフト演算子:
      ある数値を2進数で表現したとき、指定した数だけ桁をずらして新しい数値を作るよ

    • 等価演算子:
      イコールとノットイコールのこと。書き方が変だから覚えてね。

      console.log(48n == 54n);
      >>false/*48nと54nはイコールじゃないよ*/
      console.log(48n != 54n);
      >>true/*48nと54nはノットイコールだよ*/
      
    • 関係演算子:
      大なり(>)とか小なり(<)のことだよ

    • インクリメント演算子とデクリメント演算子:
      1足したり1引いたりするよ

      let num = 1;
      num++;/*numに1足してね*/
      console.log(num);
      >>2/*numは今2だよ*/
      --num;/*numから1引いてね*/
      console.log(num)
      >>1
      
    • 単項マイナス演算子:
      -2とかのマイナス(-)のこと

      console.log(-5n);
      >>-5n
      
  • 長整数リテラルを数値に型変換する
    長整数リテラルと数値リテラルは別物。一緒に計算できない。

    let bugnum = 10n;/*bignumに10n入れるよ*/
    let num = Number(bignum);/*numに"bignumをNumber関数に入れた結果"をいれるよ*/
    console.log(num);
    >>10/*numの中身は数値の10だよ*/
    

    次に数値を長整数にする。(BigInt関数)

    let num = 10;
    let bignum = BigInt(num);/*bignumに"numをBigInt関数に入れた結果"を入れるよ*/
    console.log(bignum);
    >>10n/*numの中身は長整数の10nだよ*/
    

6章おしまい!

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?