"MachineInteger" (编译类型)

"MachineInteger"

表示一个机器分级的有符号原子类型说明符.

更多信息

  • "MachineInteger" 可用于 Typed 和相关结构以指定一种类型.
  • 在 64 位平台上,"MachineInteger" 是一个 "Integer64".
  • 在 32 位平台上,"MachineInteger" 是一个 "Integer32".
  • "MachineInteger""PackedArray" 类型一起使用.

属性

  • "MachineInteger" 在 64 位架构上的存储范围为从 -263263-1.
  • "MachineInteger" 在 32 位架构上的存储范围为从 -231231-1.

转换

    从表达式转换

  • 范围合适的 Integer 表达式可被转换为类型为 "MachineInteger" 的编译代码元素.
  • 转换为表达式

  • "MachineInteger" 编译元素可被转换为 Integer 表达式.
  • 算法

  • "MachineInteger" 编译元素在用于二进制算法运算时自动提升为实元素或复元素.
  • 类型小于 "MachineInteger" 的编译元素在用于二进制算法运算时会自动被提升为 "MachineInteger".
  • "MachineInteger" 编译元素在用于二进制算法运算时会自动被提升为 "UnsignedMachineInteger".

运行时错误

    溢出

  • "MachineInteger" 用于溢出的运算时会给出运行时错误.

范例

基本范例  (4)

"MachineInteger" 可用作 CompiledCodeFunction 的输入或输出:

"MachineInteger" 的大小与 $SystemWordLength 相同:

在运行函数时,溢出会导致错误发生. 计算停止,消息发送并使用 Wolfram Engine 来计算结果:

"MachineInteger" 参数在与实数结合时会自动提升:

"MachineInteger" 参数在与较小存储范围的整数结合时,较小的类型会自动提升:

"MachineInteger" 在与相同存储范围的无符号整数结合时会被自动提升:

"MachineInteger" 由于其可取架构原生范围的整数因此可与 "PackedArray" 一起使用: