注册 登录
编程论坛 Matlab

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

grassboy 发布于 2009-11-18 16:49, 3028 次点击
在matlab中,怎么把有符号的16进制数转化为十进制数。注意,是有符号位的!!!

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

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

谢谢大家。。
1 回复
#2
dbx123582009-11-24 22:38
程序代码:

function decval=he2de(hexval, flag)
if flag==0
decval = hex2dec(hexval);
else
decval = hex2dec(hexval);
decval = decval- 2^(4*length(hexval));
end

调用
he2de('FFFF',0)代表无符号
he2de('FFFF',1)有符号
比如
>> he2de('DE',0)
ans =

   222
>> he2de('DE',1)
ans =

   -34
1