第一章 Matlab 编程基础 龙姝明 教授 陕西理工学院物电学院 2013.9 于汉中 1.1 Matlab的数据类型及表示数值的范围 1.1.1 Matlab中的数值型数据 无符号整型 uint8: 表数范围 0~255(28-1) uint16: 表数范围 0~65535(216-1) uint32: 表数范围 0~4294967295(232-1) uint64: 0~18446744073709551615 (264-1) 即 0~intmax(‘uint64’) 机器码:直接化为二进制正整数,无符号整型数超范围时取最大正整数或最小的0。上超封顶,下超封底。 例如 uint8(-179)为00H,int8(279)为ffH。 有符号整数 int8: 表数范围, -128(-27)~127 (2^7-1) Int16: 表数范围,-32768(-215)~32767(215-1) Int32: 表数范围, -2147483648(-231)~2147483647(231-1) Int64: -9223372036854775808(-263) ~ 9223372036854775807(263-1); 即 intmin(‘int64’) ~ intmax(‘int64’) 机器码:不超范围时正数直接化为二进制整数,负数加2n (n=8,16, 32,64) 化为正数再化为二进制整数。超范围时取最大正整数或绝对值最大的负整数。上超封顶,下超封底。 例如 int8(-79)为b1H,int8(179)为ffH。 浮点型实数 单精度实数 single:每个数据占4B空间,表数绝对值范围为 1.1755e-38(2-126)~3.4028e+38(7f7fffff) realmax('single')=3.40282e+38 =2127*(2-2-23) 双精度实数 Double:每个数据占8B空间,表数绝对值范围为 2.2251e-308(2-1022)~1.7977e+308(7fefffffffffffff) realmax('double')= 1.7977e+308=21023*(2-2-52) 实数的机器码 输入format hex命令后,输入实数,将会显示其十六进制编码。例如 format hex;x=(-1)*2^1023, y=single(-1*2^-127) 显示结果分别为 x=ffe0000000000000H,y 实数分大小实数分别编码 大实数x: 2127 *(2-2-23) ≥ |xs|≥2-126; 21023*(2-2-52)≥|xd|≥2-1022 小实数x: 0≤ |xs|≤2-126-2-149; 0≤ |xd| ≤2-1022-2-1074 single实数的8位指数码全1时,数符码和尾码有224状态不能表示数字,其中有两种状态分别表示+inf和-inf(即± 2128),另有一种状态表示nan(-2128*(1+1/2)),所以single实数共有232-(224)+3= 4278190083个表数状态。大数的量化阶为2-23, 小数的量化阶为2-149。 double实数的11位指数码全1时,数符码和尾码有253状态不能表示数字,其中有两种状态分别表示+inf和-inf(即± 21023),另有一种状态表示nan(-21023*(1+1/2)),所以double实数共有264-(253)+3= 18437736874454810624个表数状态。大数的量化阶为2-52,小数的量化阶为2-1074,注意10-308与10-308+ 2-1074显示的不同。 大single浮点数x=(-1)s2p(1+t)编码,存s,p+127,t 1bit数符码:正实数s=0,负实数s=1, s占编码的首个bit位。 8bit指数码:指数码是p+127的编码,占编码的第二到第9位。-126≤p ≤ 127,1 ≤ p+127≤254。s=0,t=0,p=128对应inf,s=1,p=128,t=0.5对应非数nan. 23bit尾数码:0≤ t ≤1-2-23, t为尾数,t 码占第10到32位。 如果t=2 -m+2 -q, 就在尾数的第m位和第q位都置1. 例如 -128.5=(-1)127(1+2-8),即s=1, p=7,t=2-8,m=8,则有 single码:p+127=128+6=100001102; t=2-8=000000010000000000000002; [-128.5]single=1100 0011 0000 0000 1000 0000
s2p文件取实部虚部matlab,Matlab程序设计基础与simulink仿真分解.ppt
最新推荐文章于 2023-12-09 13:16:49 发布