我有这样一个文件,文件是有符号的二进制数据,想使用matlab转换成十进制...

发布网友 发布时间:1天前

我来回答

2个回答

热心网友 时间:1天前

% 读入文件(假定文件名为data.txt)
cstr = textread('data.txt','%s');
m = length(cstr{1});
n = length(cstr);
d = zeros(n,1);
for i=1:n
s = bin2dec( cstr{i}(1) ); % 符号
if s==1
d(i)=bin2dec(cstr{i})-2^m;
else
d(i) = bin2dec( cstr{i} ) ;
end
end
此乃正解,上面的答案错的,负数的二进制是补码

热心网友 时间:1天前

% 读入文件(假定文件名为zd502097043.txt)
cstr = textread('zd502097043.txt','%s');

n = length(cstr);
d = zeros(n,1);
for i=1:n
s = bin2dec( cstr{i}(1) ); % 符号
d(i) = bin2dec( cstr{i}(2:end) ) * (-1)^s;
end
d

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com