Enhanced Era Basic 言語リファレンス

整数型

最大値と最小値

Emueraで扱える整数の範囲は符号付き64ビット、つまり -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 です。
これを超える範囲の数値を扱おうとした場合、エラーが発生します。

表記(リテラル)

Emueraでは、整数を次の形で書き表す事ができます。

10進数
数値をそのまま書く事で10進数となります。
数値の先頭にマイナス符号-を付ける事で負の値を扱う事ができます。
大きな数値をカンマ区切りにすることはできません。
	1
	-1
	999
	9223372036854775807
2進数
数値の前に0bを付ける事で、2進数となります。
0bの後、01を64個まで書く事ができます。
10進数の1を2進数で書き表すと、次のようになります。いずれも同じ1を表しています。
	0b1
	0b00000000001
2進数で負の値を扱う場合、マイナス符号を使用する事を検討してください。
10進数での-1を2進数で表す場合、次の2通りの書き方があります。
	0b1111111111111111111111111111111111111111111111111111111111111111
	-0b1
16進数
数値の前に0xを付ける事で、16進数となります。
0xの後、09に加えて、AF(10進数で言う10~15)を16個まで書く事ができます。
10進数の10を16進数で書き表すと、次のようになります。いずれも同じ10を表しています。
	0xA
	0x00000A
16進数で負の値を扱う場合、マイナス符号を使用する事を検討してください。
10進数での-13を16進数で表す場合、次の2通りの書き方があります。
	0xFFFFFFFFFFFFFFF3
	-0xD
2を底にした指数
pを使い、仮数部p指数部とする事で、仮数部×2の指数部乗の計算が行えます。
前述の10進数、2進数、16進数いずれの形でも指数計算が行えますが仮数部と指数部の表記は一致させる必要があります。 次の例はいずれも10進数の13×2の12乗、つまり53,248を表しています。
	13p12
	0b1101p1100
	0xDpC
10を底にした指数
eを使い、仮数部e指数部とする事で、仮数部×10の指数部乗の計算が行えます。
前述の10進数、2進数で指数計算が行えますが仮数部と指数部の表記は一致させる必要があります。
16進数については、指数記号としてのeと、10進数で言う14としてのeが区別されないため、10を底にした指数の計算はできません。
次の例はいずれも10進数の15×10の11乗、つまり150,000,000,000を表しています。
	15e10
	0b1111e1010

Emueraで8進数を扱うことはできません。 これはeramakerとの互換性のためです。

オーバーフロー

内部処理の都合上、整数の最大値に数値を加算したり、整数の最小値から数値を減算したりすると、オーバーフローが発生します。 次の例はそれぞれ正のオーバーフロー、負のオーバーフローが発生する例です。
以下の例は -9223372036854775808 として扱われます。(正のオーバーフロー)
	9223372036854775807 + 1
以下の例は 9223372036854775807 として扱われます。(負のオーバーフロー)
	-9223372036854775807 - 2

直接書くことが出来ない数値

整数型の範囲内ですが、整数の最小値 -9223372036854775808 を直接プログラム内に書くことはできません。
これは、一度正の値(9223372036854775808)として認識され、整数の最大値を超えてしまうためです。
整数型の最大値、最小値を直接プログラムに書きたい場合は、そのための定数(__INT_MAX____INT_MIN__)が用意されています。