Matlab 16進位轉10進位

function out=hextodec(in)
%input present 10 bit number
%

hex16_1=dec2bin(hex2dec(in(1)),2);
hex16_2=dec2bin(hex2dec(in(2)),4);
hex16_3=dec2bin(hex2dec(in(3)),4);

y1=[hex16_1 hex16_2 hex16_3];

if (y1(1)=='0')
out=bin2dec(y1(2:length(y1)));
elseif (y1(1)=='1')
y2=y1(2:length(y1));
for i=1:length(y2)
if (y2(i)=='0')
y3(i)=1;
elseif (y2(i)=='1')
y3(i)=0;
end
end
y4=y3+[0 0 0 0 0 0 0 0 1];
i=9;
while ((y4(i)==2)&(i>1))
y4(i)=0;
i=i-1;
y4(i)=y4(i)+1;
if ((i==1)&(y4(i)==2))
y4(i)=0;
end
end
for i=1:length(y4)
if (y4(i)==0)
Technorati 的標籤:

y5(i)='0';
elseif (y4(i)==1)
y5(i)='1';
end
end

out=-1*bin2dec(y5);
end

留言

熱門文章