Clone
35
Primitive Data Types
Karutoh edited this page 2025-11-20 16:31:58 -08:00

Definitions

  • Unsigned Integer: An unsigned integer is a whole number that can only represent non-negative values, meaning zero and positive numbers.
  • Signed Integer: A signed integer is a number that can be positive, negative, or zero, unlike an unsigned integer which can only be positive or zero.

Primitive Data Types

Primitives Description
Integers
UInt_64 64-Bit Unsigned Integer
UInt_32 32-Bit Unsigned Integer
UInt_16 16-Bit Unsigned Integer
UInt_8 8-Bit Unsigned Integer
SInt_64 64-Bit Signed Integer
SInt_32 32-Bit Signed Integer
SInt_16 16-Bit Signed Integer
SInt_8 8-Bit Signed Integer
Floating Points
float A 32-Bit single precision floating point number
double A 64-Bit double precision floating point number
long double A 80-Bit extended precision floating-point number
Characters
Char_32 UTF_32 Character
Char_16 UTF_16 Character
Char_8 UTF_8 Character
Misc
Byte A single byte of data, essentially just a UInt_8

Related Macros

Macros Description
Unsigned Integer
EHS_UINT_64_MAX The maximum number for a 64-bit unsigned integer.
EHS_UINT_32_MAX The maximum number for a 32-bit unsigned integer.
EHS_UINT_24_MAX The maximum number for a 24-bit unsigned integer. Used mainly in processing 24-bit audio files.
EHS_UINT_16_MAX The maximum number for a 16-bit unsigned integer.
EHS_UINT_8_MAX The maximum number for a 8-bit unsigned integer.
Signed Integers
EHS_SINT_64_MAX The maximum number for a 64-bit unsigned integer.
EHS_SINT_64_MIN The minimum number for a 64-bit unsigned integer.
EHS_SINT_32_MAX The maximum number for a 32-bit unsigned integer.
EHS_SINT_32_MIN The minimum number for a 32-bit unsigned integer.
EHS_SINT_24_MAX The maximum number for a 24-bit unsigned integer. Used mainly in processing 24-bit audio files.
EHS_SINT_24_MIN The minimum number for a 24-bit unsigned integer. Used mainly in processing 24-bit audio files.
EHS_SINT_16_MAX The maximum number for a 16-bit unsigned integer.
EHS_SINT_16_MIN The minimum number for a 16-bit unsigned integer.
EHS_SINT_8_MAX The maximum number for a 8-bit unsigned integer.
EHS_SINT_8_MIN The minimum number for a 8-bit unsigned integer.
Floating Points
EHS_LDOUBLE_MAX The maximum number for a 80-bit double precision floating point.
EHS_LDOUBLE_MIN The minimum number for a 80-bit double precision floating point.
EHS_DOUBLE_MAX The maximum number for a 64-bit double precision floating point.
EHS_DOUBLE_MIN The minimum number for a 64-bit double precision floating point.
EHS_FLOAT_MAX The maximum number for a 32-bit single precision floating point.
EHS_FLOAT_MIN The minimum number for a 32-bit single precision floating point.

Note: You may notice that the unsigned integers don't have a minimum macro. Because it's zero.

Usage Example

#include <ehs/EHS.h>
#include <ehs/Types.h>
#include <ehs/io/Console.h>

int main()
{
	ehs::Initialize("Test", "Test", {0, 0, 0});

	ehs::Console::Write_8("Enter a number: ");

	const ehs::Str_8 strValue = ehs::Console::Read_8();
	if (!strValue.IsNum())
	{
		return 1;
	}

	ehs::UInt_64 value = strValue.ToDecimal<ehs::UInt_64>();
	while (value != EHS_SINT_64_MAX - 1)
	{
		ehs::Console::Write_8("Iteration # " + ehs::Str_8::FromNum(value));

		if (value != EHS_SINT_64_MAX)
			++value;
	}

	ehs::Console::Write_8("Done!");

	ehs::Uninitialize();

	return 0;
}