在matlab中,怎么把有符号16进制数转化为十进制数。

来源:百度知道 编辑:UC知道 时间:2024/05/11 05:32:27
在matlab中,怎么把有符号的16进制数转化为十进制数。注意,是有符号位的!!!

如:输入hex2dec('FF')的结果是255,显然matlab把FF当作无符号整型来看待了。

但如果把FF看作有符号数,它应该是-1,请问这怎么用matlab来实现。

谢谢大家。。

写个简单的函数即可
function decval=hex2decWithSign(hexval, length)

decval = hex2dec(hexval);
sign = bitget(decval, 4*length);
negative_numbers = (sign == 1);
decval(negative_numbers) = decval(negative_numbers) - bitshift(1, 4*length);

用法:
>> hex2decWithSign({'FFFF', '0000'}, 4)

ans =

-1
0

>> hex2decWithSign('FFFF', 5)

ans =

65535