查阅MATLAB自带的帮助文档其实已经能很清楚了,这里还是记录一下,方便忘了之后能很快再捡起来这个知识点。
de2bi函数
功能上,de2bi函数被用于将十进制数字转化为二进制数。且转化后结果矩阵的每一行都与原输入矩阵中的元素相对应。
在转化规则上还是有点说道的:
>> E = [12;5]
E =
12
5
>> A = de2bi(E )
A =
0 0 1 1
1 0 1 0
由于de2bi函数默认的输出结果是右侧为最高位,即帮助文档中所谓的:Right-MSB——右侧为最高有效位,因此对于A的结果:第一行为0011,逆序后就是1100,正好是E中第一个元素12的二进制表示。
- (1100)2 = (12)10
同理,A的第二行1010,逆序后就是0101,是E中第二个元素5的二进制表示。
- (0101)2 = (5)10
>> B = de2bi(E,5)
B =
0 0 1 1 0
1 0 1 0 0
在后面添加一个参数a,就是把输出二进制矩阵中的元素扩展为a位。
>> C = de2bi(E,[],3)
C =
0 1 1
2 1 0
这里是将de2bi输出的元素转换为3进制。“定义将小数元素转换到哪个基”
- (110)3 = (12)10
>> D = de2bi(E,5,'left-msb')
D =
0 1 1 0 0
0 0 1 0 1
经过上面的解释,这句话就不难理解了:将十进制的E矩阵转化为2进制矩阵,每个二进制扩展为5位,且采用左侧为最高有效位。
hex2dec
功能上,hex2dec将十六进制数的字符串转换为十进制整数。
对于 D = hex2dec(H) ,如果H是一个字符数组,hex2dec将每一行都看作一个十六进制数。
如果H是字符向量的单元格数组或字符串数组,hex2dec将每个元素都看作一个十六进制数。
且,与ascii码的大小写区分不同,hex2dex函数大小写不敏感:
>> hex2dec('A')
ans =
10
>> hex2dec('a')
ans =
10