【パソコン】整数型のビット数ごとの最大値・ケタ数まとめ【プログラミング】

技術系

どうもみなさんこんばんは、流れ星につい四回願い事をしてしまったせいで逆に叶わなかったさいほうへいきです!

今回はなかば個人用も兼ねているのですが、複数の整数型で扱うことのできる最大値、ケタ数をご紹介していきます。

まぁなんかけっこう専門的な話になるのでなに言ってるかわからんって人も多いと思いますが、あんまり気にしなくて大丈夫です。

プログラミング以外だと……なんか小説とかで使えるんじゃないかな。というかもともと個人用な小説のために書いた記事だし。

では、よろしくお願いします。

符号あり整数型

符号ありっていうのはそのまんまプラマイどちらも扱えますよってことですね。

ここでの型名はC#をベースにしていますが、言語ごとに異なる場合もあります。たとえばC++だとsbyteじゃなくてcharだったりね。

なお十六進での最大値は当たり前ですが0xFFFFとかになるので書いてません。
十六進のケタ数もわかるだろって? 気にするな

あとは、デカすぎる数字は近似値にしてます。必要なら自前で計算してどうぞ。

ビット 型名 扱える最大値 ケタ数(十進) ケタ数(十六進)
8 sbyte 127 3 2
16 short 32,767 5 4
32 int 2,147,483,647 10 8
64 long 9,223,372,036,854,775,807 19 16
128 Int128 1.70×1038 39 32
256 5.79×1076 77 64
512 6.70×10153 154 128
1024 8.99×10307 308 256
2048 1.62×10616 617 512
4096 5.22×101232 1233 1024
8192 5.45×102465 2466 2048

符号なし整数型

符号なしというのは、マイナスの数を扱えないということです。

パソコン初心者のかたからするとなんでわざわざそんなことするの?という感じかもしれませんが、プラスマイナス表現に使っていたビットを数字本体へ回せるため、最大値が実質倍になるというメリットがあります。

実際、マイナスになることがないであろう回数カウンターなどではこちらのほうが有利です。

ビット 型名 扱える最大値 ケタ数(十進) ケタ数(十六進)
8 byte 255 3 2
16 ushort 65,535 5 4
32 uint 4,294,967,295 10 8
64 ulong 18,446,744,073,709,551,615 20 16
128 UInt128 3.40×1038 39 32
256 1.15×1077 78 64
512 1.34×10154 155 128
1024 1.79×10308 309 256
2048 3.23×10616 617 512
4096 1.04×101233 1234 1024
8192 1.09×102466 2467 2048

公式

ここでは普通用いられるオクテットビットの整数型しか紹介していませんが、もしも13とか24862みたいなビット数が必要な場合は、次の式からそれぞれを求めることが可能です。

なお、ここではビット数をnと置きます。

最大値

各ビットでの最大値は、以下の公式により算出されます。

符号ありの場合:

\( 2^{n-1} – 1 \)

符号なしの場合:

\( 2^{n} – 1 \)

十進法でのケタ数

符号ありの場合:

\( \lfloor (n-1) \times \log_{10}(2) \rfloor + 1 \)

符号なしの場合:

\( \lfloor n \times \log_{10}(2) \rfloor + 1 \)

十六進法でのケタ数

符号ありの場合:

\( \lceil \frac{n-1}{4} \rceil \)

符号なしの場合:

\( \lceil \frac{n}{4} \rceil \)

ちなみにカギカッコみたいな謎の記号ついては、床関数・天井関数と調べるとでてくると思います。

要するに切り捨て・切り上げですね。

まとめ

というわけで、今回は各ビット数においての最大値とケタ数、それから求める式を紹介しました!

すごく久々にマトモな記事を書いた気がします。もうちょっと頻度増やしたいんだけども……。

では、今回はここまで!

ありがとうございました。

【TrainCarts】摩擦についてざっくり解説!【物理学?】
どうも、最近ウグイスがやる気あるのかどうか疑っているさいほうへいきです!今回はTrainCartsプラグインにおいての、車両の摩擦について解説していこうと思います!まぁ小難しい知識を使う時はほぼ無いので、簡単な装置の設計であれば摩擦設定のコ...
【改善】Heiki's Boardの読み込みが高速化!理由はそのシステム変更にあり?【サーバー】
どうもおはようございます、個人的にヨーグルトにはジャムをたっぷり入れて食べたいさいほうへいきです。僕がHeiki's Boardと呼ばれるYouTube動画用掲示板システムを運営しているのはもうマイアミでは周知の事実。今までHeiki's ...

コメント

タイトルとURLをコピーしました