int型の表現範囲
intの表現範囲が複数種類あった気がしたので整理
int -32,768 ~ 32,767
参考:
Integer型とLong型はどちらを使うべき? | VBA性能徹底検証 | VBA性能向上委員会
JAVA,C,postgres等
int -2,147,483,648 ~ 2,147,483,647
参考:
Javaのint型で扱える最大の値とは? | Javaコラム
表現範囲の理屈は二進数で表現してるから
コンピュータの中では、データを「二進数」で格納
コンピュータは二進法の0と1を、大量のスイッチのON/OFFで覚えている
このスイッチが16個あったら、二進数での16桁分の数を覚えられる
そのスイッチの内一つはプラスマイナスに使うので、数字に使うのは15個
二進数での15桁の最大値、111111111111111を十進数に直すと、32767となる
このスイッチの数を「ビット」と表現している
参考:
intで定義された変数には整数値-32768から32767まで表現... - Yahoo!知恵袋
この辺は昔の常識が環境により変化している模様
昔はint範囲はint型で扱うが正しかったようだが、VBAでは32bit型に一度変換してからintを利用しているため、処理速度がlongと比較すると若干落ちるとのこと
現状では64bitマシンが主流になっているためこの常識もいつか変わるのかもしれない