Nodejs のデータ構造とエンディアン


データ構造とは、ウィキペディアによると、データ値の集合、それらの間の関係、およびデータに適用できる機能または操作です.

データ構造のメモリ
メモリの概念は、有限のメモリ スロットがあるということです.だから枯渇する可能性があります.
プログラムは、常に空きメモリ スロットに保存されます.メモリはビットとバイトとして格納されます. 8 ビットで 1 バイトになります.

例えば:

1 represented as a byte is 0000 0001         
2 represented as a byte is 0000 0010
3 represented as a byte is 0000 0011
4 represented as a byte is 0000 0100


これらは基数 2 で表されます.基数 2^8 = 256 であるため、格納できる数値の有限量が得られます.したがって、より大きな数値を保存するには、バイト数を増やします.

たとえば Java では、「int」は 4 バイト、32 ビットの整数に相当します.タイプ「long」は、64 ビット整数である 8 バイトを表します.

データ構造のエンディアン
コンピュータのメモリ ストレージにおけるエンディアンの概念は、バイトの読み取り方法を指します.最初にリトルエンディアンと呼ばれる最小のバイト値 (左から右に読み取られる) か、最初にビッグエンディアンと呼ばれる最大のバイト値 (左から右に読み取られる) のいずれかです.
例えば、

65,000 decimal number in base 2 is: 0b11111101 11101000.
0b here helps us know it is in base 2 and not 1,111,110,111,101,000


上記の答えはビッグエンディアン バイトです.これは、最大の 0b11111101 を持つバイトが最初に書き込まれ、左から右に読み取られるためです. Google で、別のバイト「0b1111110100000000 を基数 10 に」で埋めたビッグエンディアンを変換することで、これを確認できます.結果は 64,768 で、最初の数である 65,000 に非常に近い値です.

ネットワークの標準はビッグ エンディアンで、ほとんどの PC の標準はリトル エンディアンです.この code スニペットをオンラインで確認して、マシンが実行しているエンディアンを確認してください.私のマシンはリトルエンディアンで動作します.

エンディアンは、最新のコンピューター言語がこの不必要な複雑さを取り除き、バイエンディアンで両方を処理できるプロセッサのおかげで、ほとんど問題ではなくなりました.

さらなる調査については、https://www.algoexpert.io をご覧ください.