马铃薯草®有四个签名和四个无符号整数类。签名类型使您可以使用负整数以及正数,但不能表示为无符号类型的范围广泛,因为一位用于指定数字的正面或负符号。无符号类型给您更广泛的数字,但这些数字只能为零或正数。
MATLAB支金宝app持整数数据的1、2、4和8字节存储。如果使用容纳数据的最小整数类型,则可以节省程序的内存和执行时间。例如,不需要32位整数来存储该值One hundred.
.
以下是八个整数类,您可以使用每种类型存储的值范围,以及创建该类型所需的MATLAB转换功能:
班级 |
范围的值 |
转换功能 |
---|---|---|
签名8位整数 |
-27.到27.-1 |
|
签署了16位整数 |
-215.到215.-1 |
|
签名32位整数 |
-231.到231.-1 |
|
签署了64位整数 |
-263.到263.-1 |
|
Unsigned 8位整数 |
0到28.-1 |
|
无符号16位整数 |
0到216.-1 |
|
无符号32位整数 |
0到232.-1 |
|
未签名的64位整数 |
0到264.-1 |
|
MATLAB将数值数据存储为双精度浮点(双倍的
) 默认情况下。要将数据存储为整数,您需要转换双倍的
到所需的整数类型。使用上表中显示的转换函数之一。
例如,要存储325
作为分配给变量的16位符号整数X
、类型
x = int16(325);
如果转换为整数的号码具有分数部分,则Matlab舍入到最接近的整数。如果分数部分正好0.5
然后,从两个同样附近的整数,Matlab选择绝对值幅度较大的一个:
x = 325.499;Int16 (x) ans = Int16 325 x = x + .001;Int16 (x) ans = Int16 326
如果您需要使用除默认的圆角方案以外的舍入方案进行围绕,Matlab提供四个舍入功能:轮
那使固定
那地板上
,细心
.的使固定
功能使您可以覆盖默认值和圆形朝向零当有非零部分部分时:
x = 325.9;Int16 (fix(x)) ans = Int16 325
同时涉及整数和浮点数的算术操作总是得到整数数据类型。MATLAB在必要时根据默认的舍入算法对结果进行四舍五入。下面的例子给出了一个确切的答案1426.75
MATLAB将其四舍五入到下一个最高整数:
INT16(325)* 4.39 ANS = INT16 1427
将其他类(例如字符串)转换为整数时,整数转换函数也很有用:
str ='你好世界';INT8(STR)ANS = 1×11 INT8行向量72 101 108 108 111 32 87 111 1141111100 100
如果转换a南
值转换为整数类,结果是值0.
在那个整数类中。例如,
INT32(NAN)ANS = INT32 0
MATLAB可以在以下类型的数据上执行整数算术:
整数或相同整数数据类型的整数阵列。这会产生具有与操作数相同的数据类型的结果:
x = UINT32([132 347 528])。* UINT32(75);类(x)ans = uint32
整数或整数阵列和标量双精度浮点数。这会产生具有与整数操作数相同的数据类型的结果:
x = uint32([132 347 528])。* 75.49;类(x)ans = uint32
对于所有二进制操作,其中一个操作数是整数数据类型的数组(除了64位整数),另一个操作数是标量双精度,MATLAB使用元素双精度算法计算操作,然后将结果转换回原始的整数数据类型。对于涉及64位整数数组和标量双精度的二进制操作,MATLAB计算该操作就像使用80位扩展精度算法一样,以防止精度的损失。
不支持涉及具有整数类型的复数的操作。金宝app
对于每个整数数据类型,您可以使用该类型表示最大和最小的数字。表格下的表格整数列出“值范围”列中的每个整数数据类型的最大和最小值。
属性也可以获得这些值intmax.
和intmin.
功能:
INTMAX('INT8')ANS = INT8 127 INTMIN('INT8')ANS = INT8 -128
如果将大于整数数据类型最大值的数字转换为该类型,MATLAB将其设置为最大值。类似地,如果转换的数字小于整数数据类型的最小值,MATLAB会将其设置为最小值。例如,
x = int8(300)x = int8 127 x = int8(-300)x = int8 -128
此外,当涉及整数的算术运算的结果超过数据类型的最大(或最小)值时,MATLAB将其设置为最大(或最小)值:
x = int8(100)* 3 x = int8 127 x = int8(-100)* 3 x = int8 -128