two_complement.m.svn-base

来自「这是一个用来控制机器人ePuck的matlab GUI.通过它」· SVN-BASE 代码 · 共 23 行

SVN-BASE
23
字号
function value=two_complement(rawdata)

if (mod(max(size(rawdata)),2) == 1)
    error('The data to be converted must be 16 bits and the vector does not contain pairs of numbers')
end

value=zeros(1,max(size(rawdata))/2);
j=1;
for i=1:2:max(size(rawdata))
    if (bitget(rawdata(i+1),8)==1)   % Negatif number -> two'complement
        value(j)=-(invert_bin(rawdata(i))+bitshift(invert_bin(rawdata(i+1)),8)+1);
    else
        value(j)=rawdata(i)+bitshift(rawdata(i+1),8);
    end
    j=j+1;
end


function value=invert_bin(value)
for i=1:8
    value=bitset(value,i,mod(bitget(value,i)+1,2));
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?