Main Content

int64

64 位有符号整数数组

说明

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

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

  y         1x1                 8  int64                    

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

创建对象

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

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

描述

示例

Y = int64(X)X 中的值转换为 int64 类型。范围 [–263, 263–1] 之外的值映射到最近的端点。

输入参数

全部展开

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

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

示例

全部折叠

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

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

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

Y_inaccurate = int64([-72057594035891654 81997179153022975])
Y_inaccurate = 1x2 int64 row vector

   -72057594035891656    81997179153022976

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

Y_accurate = [int64(-72057594035891654) int64(81997179153022975)]
Y_accurate = 1x2 int64 row vector

   -72057594035891654    81997179153022975

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

Y_accurate = [0xFF000000001F123As64 0x1234FFFFFFFFFFFs64]
Y_accurate = 1x2 int64 row vector

   -72057594035891654    81997179153022975

提示

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

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

扩展功能

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

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

版本历史记录

在 R2006a 之前推出