Play Siv3D!

ゲームとメディアアートのための C++ ライブラリ「Siv3D」

数値

数値

Siv3D June 2015 v2

整数を指定した基数の文字列で表す
ToString(value, radix)は整数 value を基数 radix で表した文字列を返します。基数は [2, 36] の範囲で指定します。
2 進数に変換するToBinary(value), 8 進数に変換するToOctal(value), 16 進数に変換するToHex(value)も提供されています。通常使うような数値から 10 進数の文字列への変換には、引数を複数指定できる Format が便利です。

# include <Siv3D.hpp>

void Main()
{
	// 2 進数
	Println(ToString(123, 2)); // 1111011

	// 2 進数
	Println(ToBinary(123)); // 1111011

	// 8 進数
	Println(ToOctal(123)); // 173

	// 16 進数
	Println(ToHex(123)); // 7b

	// 16 進数(大文字)
	Println(ToHex(123).upper()); // 7B
	
	WaitKey();
}


浮動小数点数を文字列で表す
ToString(value, decimalPlace)は浮動小数点数を小数点以下 decimalPlace 桁まで表現する文字列を返します。
値は四捨五入され、小数部の末尾の 0 は省略されます。

# include <Siv3D.hpp>

void Main()
{
	Println(ToString(1.234567, 0)); // 1

	Println(ToString(1.234567, 2)); // 1.23

	Println(ToString(1.234567, 4)); // 1.2346

	Println(ToString(1.234567, 6)); // 1.234567

	Println(ToString(2.0, 5)); // 2

	WaitKey();
}


文字列から数値に変換する
FromString<Type>は文字列を数値に変換します。

# include <Siv3D.hpp>

void Main()
{
	const int n = FromString<int>(L"123");

	Println(n); // 123

	// 0x から始まる整数は 16 進数
	Println(FromString<int>(L"0x7B")); // 123

	// 0 から始まる整数は 8 進数
	Println(FromString<int>(L"0173")); // 123

	// 基数を明示的に指定可能
	Println(FromString<int>(L"7B", 16)); // 123

	Println(FromString<double>(L"0.12345")); // 0.12345

	WaitKey();
}


浮動小数点数のビット表現を文字列で表す
ToBinary(value)ToOctal(value)ToHex(value)の引数に浮動小数点数を渡すと、ビット表現を文字列で取得できます。
AsUint(value)は浮動小数点数のビット表現を整数型で解釈した結果を返します。

# include <Siv3D.hpp>

void Main()
{
	// 2 進数
	Println(ToBinary(3.25f)); // 1000000010100000000000000000000

	// 8 進数
	Println(ToOctal(3.25f)); // 10024000000

	// 16 進数
	Println(ToHex(3.25f)); // 40500000

	// ビット表現を整数型として解釈
	Println(AsUint(3.25f)); // 1078984704

	WaitKey();
}


ある数値型で表現できる最小の数値を取得する
Smallest<Type>()は数値型 Type が表現できる最小の値を返します。

# include <Siv3D.hpp>

void Main()
{
	Println(Smallest<int8>()); // -128

	Println(Smallest<uint8>()); // 0

	Println(Smallest<int32>()); // -2147483648

	Println(Smallest<float>()); // -340282346638528860000000000000000000000

	WaitKey();
}


ある数値型で表現できる最大の数値を取得する
Largest<Type>()は数値型 Type が表現できる最大の値を返します。

# include <Siv3D.hpp>

void Main()
{
	Println(Largest<int8>()); // 127

	Println(Largest<uint8>()); // 255

	Println(Largest<int32>()); // 2147483647

	Println(Largest<float>()); // 340282346638528860000000000000000000000

	WaitKey();
}


正の無限大を取得する
Infinity<Type>()は浮動小数点数型 Type の正の無限大値を返します。

# include <Siv3D.hpp>

void Main()
{
	Println(Infinity<float>()); // 1.#INF

	Println(Infinity<double>()); // 1.#INF

	WaitKey();
}


数値が非数 (NaN) であるかを調べる
IsNaN(value)は value が非数であるかを返します。

# include <Siv3D.hpp>

void Main()
{
	Println(IsNaN(Sqrt(-1))); // true

	Println(IsNaN(1.234)); // false

	Println(IsNaN(Infinity<float>())); // false

	WaitKey();
}


数値が有限値であるかを調べる
IsFinite(value)は value が有限値であるかを返します。

# include <Siv3D.hpp>

void Main()
{
	Println(IsFinite(Sqrt(-1))); // false

	Println(IsFinite(1.234)); // true

	Println(IsFinite(Infinity<float>())); // false

	WaitKey();
}


数値が無限であるかを調べる
IsInfinity(value)は value が無限であるかを返します。

# include <Siv3D.hpp>

void Main()
{
	Println(IsInfinity(Sqrt(-1))); // false

	Println(IsInfinity(1.234)); // false

	Println(IsInfinity(Infinity<float>())); // true

	WaitKey();
}