Main Content

uint64

64 位无符号整数数组

说明

MATLAB® 中数据类型(类)为 uint64 的变量存储为 8 个字节(64 位)的无符号整数。例如:

y = uint64(10);
whos y
  Name      Size            Bytes  Class     Attributes

  y         1x1                 8  uint64                        

有关整数类型的详细信息,请参阅整数

创建对象

有些数组创建函数允许您指定数据类型。例如,zeros(100,'uint64') 创建一个由 uint64 类型的零值组成的 100×100 矩阵。

如果您有一个不同类型(如 doublesingle)的数组,则可以使用 uint64 函数将该数组转换为 uint64 类型的数组。

描述

示例

Y = uint64(X)X 中的值转换为 uint64 类型。超出范围 [0, 264–1] 的值映射到最近的端点。

输入参量

全部展开

输入数组,指定为标量、向量、矩阵或多维数组。

数据类型: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | logical | char

示例

全部折叠

将双精度变量转换为 64 位无符号整数。

x = 100;
xtype = class(x)
xtype = 
'double'
y = uint64(x)
y = uint64
    100

将大整数(大于 flintmax)数组转换为 64 位无符号整数数组。当指定数值数组输入时,精度可能会损失,因为 MATLAB 最初默认将输入表示为双精度。

Y_inaccurate = uint64([72057594037539387 72057594037927935])
Y_inaccurate = 1x2 uint64 row vector

   72057594037539384   72057594037927936

为了在创建 64 位无符号整数数组时保持精度,请改为对每个标量元素调用 uint64

Y_accurate = [uint64(72057594037539387) uint64(72057594037927935)]
Y_accurate = 1x2 uint64 row vector

   72057594037539387   72057594037927935

从 R2019b 开始,您还可以使用整数的十六进制或二进制值准确地创建整数数组。有关详细信息,请参阅十六进制和二进制值

Y_accurate = [0xFFFFFFFFFA123Bu64 0xFFFFFFFFFFFFFFu64]
Y_accurate = 1x2 uint64 row vector

   72057594037539387   72057594037927935

提示

  • 当创建由大整数(大于 flintmax)的数值组成的数组时,默认情况下,MATLAB 最初将输入表示为双精度值。当您将此输入转换为 uint64 数据类型时,可能出现精度损失。为了保持精度,请改为对数组的每个标量元素调用 uint64。例如,请参阅 转换大整数数组而不损失精度

  • 如果您有包含大整数的字符数组或字符串标量格式的文本,则您可以使用 sscanf 函数读取该文本并返回精确的 64 位无符号整数数组。您可以指定输入字段的格式,以便 sscanf 直接转换以十进制、八进制或十六进制表示整数的文本,而无需先将它们转换为 Unicode 代码值。为了进行比较,uint64(X) 会将字符向量输入转换为整数数组,该数组表示每个字符的 Unicode 代码值。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

版本历史记录

在 R2006a 之前推出