"UnsignedMachineInteger" (Compiled Type)


represents a machine-sized unsigned integer atomic type specifier.


  • "UnsignedMachineInteger" can be used in Typed and related constructs to specify a type.
  • On 64-bit platforms, "UnsignedMachineInteger" is an "UnsignedInteger64".
  • On 32-bit platforms, "UnsignedMachineInteger" is an "UnsignedInteger32".


  • Values held by "UnsignedMachineInteger" range from 0 to 264-1 on 64-bit architectures.
  • Values held by "UnsignedMachineInteger" range from 0 to 232-1 on 32-bit architectures.


    From Expressions

  • Suitably sized Integer expressions can be converted into compiled code elements with the type "UnsignedMachineInteger".
  • To Expressions

  • "UnsignedMachineInteger" compiled elements can be converted into Integer expressions.
  • Arithmetic

  • "UnsignedMachineInteger" compiled elements are automatically promoted to real or complex elements when they are combined in binary arithmetic operations.
  • Compiled elements with types smaller than "UnsignedMachineInteger" are automatically promoted to "UnsignedMachineInteger" when they are combined in binary arithmetic operations.

Runtime Errors


  • "UnsignedMachineInteger" can give a runtime error if it is used in an operation that overflows.


Basic Examples  (4)

"UnsignedMachineInteger" can be used as an input and output from a CompiledCodeFunction:

"UnsignedMachineInteger" has the same size as $SystemWordLength:

An overflow causes an error while running the function. The computation is terminated, a message is issued and the Wolfram Engine is used to compute the result:

The "UnsignedMachineInteger" argument is automatically promoted when combined with a real number:

When an "UnsignedMachineInteger" argument is combined with an integer of a smaller storage size, the smaller type is automatically promoted:

"UnsignedMachineInteger" is useful for working with "PackedArray", since this takes integers of the native size for the architecture: