MATLAB进制转换
MATLAB 进制
在MATLAB中,十六进制字面值以 0x
或 0X
前缀开头,而二进制字面值以 0b
或 0B
前缀开头。MATLAB 将采用这种表示法的数字存储为整数。例如使用十六进制和二进制表示整数1229
如下:
a = 0x4cd
b = 0b10011001101
默认情况下,MATLAB 将数字存储为能够容纳它的最小无符号整数类型。但是,可以使用可选后缀来指定存储该值的整数类型(无符号或有符号,位数等):
后缀 | 无符号 | 有符号 |
---|---|---|
8 位 | u8 | s8 |
16 位 | u16 | s16 |
32 位 | u32 | s32 |
64 位 | u64 | s64 |
MATLAB 进制转换
利用 MATLAB 可以很容易地将数字在不同进制(十六进制、二进制、十进制等)之间相互转换。
- dec2hex: 十进制转换为十六进制
- dec2bin: 十进制转换为二进制
- hex2dec:十六进制转换为十进制
这里以一个存储在 test.txt
的简短16进制文本为例,将其转为十进制的数:
bd be c0 173
bd c0 bf 141
bd bf c3 144
bd c3 c1 81
bf c2 c3 68
c1 c3 c6 10
十六进制转十进制 MATLABcode:
a=textread('test.txt','%s')';
alpha=hex2dec(a);
A = reshape(alpha,[4,6])';
输出 A
:
189 190 192 371
189 192 191 321
189 191 195 324
189 195 193 129
191 194 195 104
193 195 198 16