Matlab 负数十进制转二进制代码在 matlab 中,有 dec2bin(D,N)这个函数进行十进制对二进制的转换,但是要求十进制数 D必须是正的。这里编写了代码包含了十进制正负整数对二进制的转换,负数的二进制数用补码表示:函数代码:存放在 dec2binPN.m 文件中;用 y=dec2binPN(-60,8)这样的方法调用function [numbin] = dec2binPN(numdec,N) %推断输入数正负if (numdec>= 0) %正数转二进制 numbin1 = dec2bin(numdec,N); else %负数转二进制 numbin1 = dec2bin(abs(numdec),N); l1=length(numbin1); numbin4=0;for i=1:l1 if (numbin1(l1-i+1)==num2str(1))%按位取反,用十进制表示 numbin4=numbin4+0;else numbin4=numbin4+2^(i-1);endend %末位加 1 numbin4=numbin4+1; %把处理完的十进制数转成二进制,并输出在 numbin numbin5=dec2bin(numbin4); numbin1=num2str(numbin5,N);endnumbin=numbin1;end直接运行的代码:clc%输入的十进制数,可以是正数也可以是负数numdec=-8%输出的二进制数的位数N=8;%推断输入数正负if (numdec>= 0) %正数转二进制numbin = dec2bin(numdec,N);else %负数转二进制numbin = dec2bin(abs(numdec),N); l1=length(numbin); numbin4=0;for i=1:l1 if (numbin(l1-i+1)==num2str(1))%按位取反,用十进制表示 numbin4=numbin4+0;else numbin4=numbin4+2^(i-1);endend %末位加 1 numbin4=numbin4+1; %把处理完的十进制数转成二进制,并输出在 numbin numbin5=dec2bin(numbin4);numbin=num2str(numbin5,N);endnumbin