logo资料库

Matlab负数十进制转二进制代码.docx

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
Wesley Chen SPE SYSU 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; numbin4=numbin4+2^(i-1); else end end %末位加 1 numbin4=numbin4+1; %把处理完的十进制数转成二进制,并输出在 numbin numbin5=dec2bin(numbin4); numbin1=num2str(numbin5,N); end numbin=numbin1; end
Wesley Chen SPE SYSU 直接运行的代码: 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; numbin4=numbin4+2^(i-1); else end end %末位加 1 numbin4=numbin4+1; %把处理完的十进制数转成二进制,并输出在 numbin numbin5=dec2bin(numbin4); numbin=num2str(numbin5,N); end numbin
分享到:
收藏