- MATLAB从基础到精通
- 王薇编著
- 828字
- 2020-08-28 06:53:08
2.1 整型
MATLAB 7.0中的整型数据类型,按照有无符号位可以分为有符号位整数和无符号位整数,而按照数据类型的字节数又可分为8位、16位、32位、64位的整数类型。在使用中主要根据实际存储的数据的数值大小范围来确定数据类型,在保证数据精度的同时尽量避免不必要的内存的浪费,提高运算速度。其中有符号位整型需要一个1位来表示数据为负,因此有符号位的整型数据8位、16位、32位、64位的范围分别为-27~27-1、-215~215-1、-231~231-1、-263~263-1;无符号位的整型8位、16位、32位、64位的范围分别为0~28-1、0~216-1、0~232-1、0~264-1。
不同类型整型的生成函数如下。
● int8(x):有符号8位整型数据生成。
● int16(x):有符号16位整型数据生成。
● int32(x):有符号32位整型数据生成。
● int64(x):有符号64位整型数据生成。
● uint8(x):无符号8位整型数据生成。
● uint16(x):无符号8位整型数据生成。
● uint32(x):无符号8位整型数据生成。
● uint64(x):无符号8位整型数据生成。
【例2.1】不同类型整型数据的生成。
>> x=int8(12) %有符号8位整型数据x生成,其值为12 x = 12 >> y=uint16(x) %x转换为无符号16位整型数据y y = 12 >> z=int8(128) %有符号8位整型数据z生成,128超过最大上限,其值为127 z = 127 >> xx=int8(-8) %有符号8位整型数据xx生成,其值为-8 xx = -8 >> yy=uint8(-8) %无符号8位整型数据yy生成,由于负数超过其下限,yy值为0 yy = 0 >> zz=int32(-8) %有符号32位整型数据zz生成,其值为-8 zz = -8 >> whos %查看工作空间的变量 Name Size Bytes Class x 1x1 1 int8 array xx 1x1 1 int8 array y 1x1 2 uint16 array yy 1x1 1 uint8 array z 1x1 1 int8 array zz 1x1 4 int32 array Grand total is 6 elements using 10 bytes >> isinteger(zz) %判断变量zz数据类型是否为整型 ans = 1 >> x=zeros(3,'uint8') %全零矩阵的生成,并定义其数据类型为8位无符号整型 x = 0 0 0 0 0 0 0 0 0
intmin()和intmax()函数可用于确定整型数据类型的数据范围,其中intmin()函数用于求数据类型下限,intmax()函数用于求数据类型上限。函数的调用格式如下所示。
● intmin(classname):指导数据类型下限计算。
● intmax(classname):指导数据类型上限计算。
【例2.2】不同整型数据类型数值范围计算。
>> intmin('int8') %有符号8位整型下限计算 ans = -128 >>intmax('int8') %有符号8位整型上限计算 ans = 127 >> intmin('int32') %有符号32位整型下限计算 ans = -2147483648 >> intmin('uint32') %无符号32位整型下限计算 ans = 0