4.4 整数数据类型

Octave 支持整数矩阵,作为使用双精度浮点数的替代方案。可以使用 8 位、16 位、32 位或 64 位表示的有符号和无符号整数。需要注意的是,大多数计算都需要浮点数据,这意味着整数在进行数值计算时经常会改变类型。因此,整数通常用于存储数据,而不是用于计算。

一般来说,大多数整数矩阵都是通过将现有矩阵转换为整数来创建的。以下示例显示了如何将矩阵转换为 32 位整数。

float = rand (2, 2)
     ⇒  float = 0.37569   0.92982
                0.11962   0.50876
integer = int32 (float)
     ⇒  integer = 0  1
                  0  1

可以看到,浮点值在转换时会四舍五入到最近的整数。

 
tf = isinteger (x)

如果 x 是整数对象(int8、uint8、int16 等),则返回 true。

请注意 isinteger (14) 为 false,因为 Octave 中的数字常量是双精度浮点值。

另请参阅: isfloatischarislogicalisstringisnumericisa

 
y = int8 (x)

x 转换为 8 位整数类型。

另请参阅: uint8int16uint16int32uint32int64uint64

 
y = uint8 (x)

x 转换为无符号 8 位整数类型。

另请参阅: int8int16uint16int32uint32int64uint64

 
y = int16 (x)

x 转换为 16 位整数类型。

另请参阅: int8uint8uint16int32uint32int64uint64

 
y = uint16 (x)

x 转换为无符号 16 位整数类型。

另请参阅: int8uint8int16int32uint32int64uint64

 
y = int32 (x)

x 转换为 32 位整数类型。

另请参阅: int8uint8int16uint16uint32int64uint64

 
y = uint32 (x)

x 转换为无符号 32 位整数类型。

另请参阅: int8uint8int16uint16int32int64uint64

 
y = int64 (x)

x 转换为 64 位整数类型。

另请参阅: int8uint8int16uint16int32uint32uint64

 
y = uint64 (x)

x 转换为无符号 64 位整数类型。

另请参阅: int8uint8int16uint16int32uint32int64

 
Imax = intmax ()
Imax = intmax ("type")
Imax = intmax (var)

返回可以用特定整数类型表示的最大整数。

输入是字符串 "type",指定一个整数类型,或者它是一个现有的整数变量 var

type 的可能值为

"int8"

有符号 8 位整数。

"int16"

有符号 16 位整数。

"int32"

有符号 32 位整数。

"int64"

有符号 64 位整数。

"uint8"

无符号 8 位整数。

"uint16"

无符号 16 位整数。

"uint32"

无符号 32 位整数。

"uint64"

无符号 64 位整数。

type 的默认值是 "int32"

示例代码 - 查询现有变量

x = int8 (1);
intmax (x)
  ⇒  127

另请参阅: intminflintmax

 
Imin = intmin ()
Imin = intmin ("type")
Imin = intmin (var)

返回可以用特定整数类型表示的最小整数。

输入是字符串 "type",指定一个整数类型,或者它是一个现有的整数变量 var

type 的可能值为

"int8"

有符号 8 位整数。

"int16"

有符号 16 位整数。

"int32"

有符号 32 位整数。

"int64"

有符号 64 位整数。

"uint8"

无符号 8 位整数。

"uint16"

无符号 16 位整数。

"uint32"

无符号 32 位整数。

"uint64"

无符号 64 位整数。

type 的默认值是 "int32"

示例代码 - 查询现有变量

x = int8 (1);
intmin (x)
  ⇒  -128

另请参阅: intmaxflintmax

 
Imax = flintmax ()
Imax = flintmax ("double")
Imax = flintmax ("single")
Imax = flintmax (var)

返回可以在浮点值中连续表示的最大整数。

输入是字符串,指定浮点类型,或者是现有的浮点变量 var

默认类型是 "double",但 "single" 是一个有效的选项。在 IEEE 754 兼容系统上,flintmax 对于 "double"2^{53},对于 "single"2^{24}

示例代码 - 查询现有变量

x = single (1);
flintmax (x)
  ⇒  16777216

另请参阅: intmaxrealmaxrealmin


版权所有 © 2024-2026 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号-2