MATLAB软件二进制间的转换
数据在计算机中是以二进制的形式存在的,而十六进制在实际的表示中比二进制要方便,因而除了十进制外,二进制数和十六进制数都是比较常用的两种数据表示方法。MATLAB提供了二进制、十进制和十六进制数和字符串之间的转换函数,这些函数在将数据以二进制或十六进制进行格式化输出时是非常有用的。
1.把十进制整数转换为十六进制字符串
(1)dec2hex(A):此函数将一个小于252的非负整数转换为其十六进制的字符串形式。
(2)dec2hex(A,n):此函数将一个小于252的非负整数A转换为n位十六进制的字符串形式,如果实际转换成的十六进制的位数小于n,则其余位上为0;如果实际转换成的十六进制数的位数大于n,则忽略此限制。A可以为由满足上述条件的整数组成的矩阵,返回结果为字符串矩阵。
例2.43 利用dec2hex()函数将十进制整数转换为十六进制字符串。
>> a=dec2hex(12345)
a =
3039
>> b=dec2hex(12345,10)
b =
0000003039
>> c=dec2hex(12345,1)
c =
3039
>> A=[12345,67];
>> d=dec2hex(A,1)
d =
3039
0043
2.把十六进制字符串转换为十进制整数
格式如下:
hex2dec(S)
此函数将字符串或字符串矩阵表示的十六进制数转换为相应的十进制数。
例2.44 利用hex2dec()函数将十六进制字符串转换为十进制整数。
>> hex2dec(d)
ans =
12345
67
3.把十六进制字符串转换为浮点数
格式如下:
hex2num(S)
此函数将字符串表示的十六进制数转换为双精度浮点数。如果输入的字符串少于16个字符,函数会用0在其后面补足16个字符串。S可以为字符串矩阵。此函数也可以处理NaN和Inf等数。
例2.45 利用hex2num()函数将十六进制字符串转换为浮点数。
>> hex2num('e')
ans =
-2.6816e+154
>> hex2num('e0000000000000000')
ans =
-2.6816e+154
>> hex2num(['e03';'21b'])
ans =
1.0e+155 *
-2.1452
0.0000
>> hex2num('ffff')
ans =
NaN
>> hex2num('fff')
ans =
-Inf
4.把十进制数转换为二进制字符串
(1)dec2bin(A):此函数将十进制数或矩阵A转换为它的二进制形式的字符串。A本身或A的元素(A是矩阵时)都必须小于252的非负整数。
(2)dec2bin(A,n):此函数将A转换成n个字符组成的字符串表示的A的n位二进制数。如果实际转换成的二进制数的位数小于n,则其余位上为0,如果实际转换成的二进制数的位数大于n,则忽略此限制。
例2.46 利用dec2bin()函数将十进制数转换为二进制字符串。
>> A=[12 23;34 56];
>> dec2bin(A)
ans =
001100
100010
010111
111000
>> dec2bin(A,8)
ans =
00001100
00100010
00010111
00111000