0
点赞
收藏
分享

微信扫一扫

matlab数据类型 —— 浮点型

matlab数据类型 —— 浮点型_算法



文章目录

  • ​​〇、概述​​
  • ​​一、单精度浮点型​​
  • ​​二、双精度浮点型​​
  • ​​三、浮点型的最小值与最小值​​
  • ​​例1. 查看双精度浮点型以及单精度浮点型的最大正值和最小正值​​
  • ​​四、浮点型创建​​
  • ​​例2. 将数据转换成浮点型​​
  • ​​四、浮点型参与的运算​​
  • ​​1. 运算中的注意事项​​
  • ​​例3. 浮点型参与的运算​​



〇、概述

浮点型:与整型不同,浮点型是指可以有小数点及以后数据部分的数据。​​1.1312​​​、​​232.31​​​、​​-8321​​ 等处在浮点型范围内数据

Matlab 中提供了两种浮点数类型,单精度浮点型 与 双精度浮点型。两者在存储所占用的位宽,数值的范围等都不同。

  • 单精度浮点型 用英文 ​​single​​ 表示
  • 双精度浮点型 用英文 ​​double​​ 表示

一、单精度浮点型

有符号整型 是一般是指带有正负号的整型。

类型

函数

范围

占用大小

数据位

​0~22​​ 位 → 小数部分

单精度浮点型

single

-3.4028e+38 ~ 3.4028e+38

4字节 (32 位)

​23~30​​位 → 指数部分

​31​​位 → 符号位

  • 符号位 0 位为正,1 位为负

二、双精度浮点型

无符号整型 是指没有正负号的整型,也就是只包含 0 和 正数 的整数。

类型

函数

范围

占用大小

数据位

​0~51​​ 位 → 小数部分

双精度浮点型

double

-1.7977e+308 ~ 1.7977e+308

8字节 (64 位)

​52~62​​位 → 指数部分

​63​​位 → 符号位

  • 符号位 0 位为正,1 位为负

三、浮点型的最小值与最小值

在 matlab 中,可以使用 ​​realmax()​​​ 函数 和 ​​realmin()​​ 函数 来查看浮点型的最大正数以及最小正数。

  • ​realmax()​​:返回指定浮点数类型所能表示的正的最大值。
  • ​realmin()​​:返回指定浮点数类型所能表示的正的最小值。
  • 注意:这两个函数只对浮点型有效,对其它类型无效

例1. 查看双精度浮点型以及单精度浮点型的最大正值和最小正值

>> realmax('double')  %查看双精度浮点型的最大正值

ans =

1.7977e+308

>>
>> realmin('double') %查看双精度浮点型的最小正值

ans =

2.2251e-308

>>
>> realmax('single') %查看单精度浮点型的最大正值

ans =

single

3.4028e+38

>>
>> realmin('single') %查看单精度浮点型的最小正值

ans =

single

1.1755e-38

四、浮点型创建

由于 Matlab 中数值的默认存储类型是 双精度浮点型,对于使用双精度浮点型的情况下可以不用强制转换,直接使用即可。

但在某些情况下,使用单精度浮点型能够能够表现出更好的性能(单精度浮点型所占用的存储空间比较小,因此对于内存的占用也比较小)这时候就需要使用强制转换来将其变成双精度浮点型。

例2. 将数据转换成浮点型

>> x=100  %不用强转赋值double型给x

x =

100

>>
>> y=double(100) %使用强转赋值double型给y

y =

100

>>
>> z=single(100) %使用强转赋值single型给z

z =

single

100

>>
>> whos
Name Size Bytes Class Attributes

ans 1x1 4 single
x 1x1 8 double
y 1x1 8 double
z 1x1 4 single

  • ​x=100​​​ 与 ​​x=double(100)​​ 含义相同,都是赋值双精度浮点型100给x。

四、浮点型参与的运算

这里如果你有其它语言的学习背景的话,这里的浮点型的运算也是建议牢牢记住浮点型参与的运算的一些注意事项。

1. 运算中的注意事项

  • 双精度浮点型整型 做数学运算结果仍是 整型 (上一节说的)
  • 双精度浮点型单精度浮点型 做数学运算结果是 单精度浮点型
  • 双精度浮点型字符型逻辑型 做运算结果是 双精度浮点型

  • 单精度浮点型整型 不能做数学运算 (上一节说的)
  • 单精度浮点型字符型逻辑型 以及 任何浮点型 做运算都是 单精度浮点型。

例3. 浮点型参与的运算

>> a=double(10)*int8(10)  %双精度浮点型与整型做数学运算

a =

int8

100

>>
>> b=double(10)*single(10) %双精度浮点型与单精度浮点型做数学运算

b =

single

100

>>
>> c=double(10)*'a' %双精度浮点型与字符型做数学运算

c =

970

>>
>> d=double(10)*false %双精度浮点型与逻辑型做运算

d =

0

>> e=single(10)*int32(10)  %单精度浮点型与整型做数学运算

错误使用 *
整数只能与同类的整数或双精度标量值组合使用。

>>
>> f=single(10)*'a' %单精度浮点型与字符型做运算

f =

single

970

>>
>> g=single(10)*false %单精度浮点型与逻辑型做运算

g =

single

0

>> whos
Name Size Bytes Class Attributes

a 1x1 1 int8
ans 1x1 4 single
b 1x1 4 single
c 1x1 8 double
d 1x1 8 double
f 1x1 4 single

matlab数据类型 —— 浮点型_浮点型_02


举报

相关推荐

0 条评论