概述
做了很多的FPGA、DSP、ARM、单片机的编程,有很多地方都用到了将已知的10进制整数例如系数什么的转换成处理器可以识别的2进制补码数据,在网上找了很久一直都没有找到,想直接用MATLAB解决,可是MATLAB又没有提供这样的函数,MATLAB中的dec2bin只能将正的整数转化成2进制,对于需要补码表示的负数就无能为力。
这次,我本来还是不想编这样的程序的,可是数据太多了,用计算器一个个算实在是来不了了,无奈,我今天花了个把小时的时间编了这个将10进制的整数转换成2进制补码表示的数。为了需要的人们,不再去费力编写,也为了和大家交流找到更好的转换方式,特此将自己的程序贴上,和大家一起探讨。
我深知我写的程序不是最好的,但是可以实现功能,希望对此有兴趣的访客给出宝贵意见,如果有更好的办法请大家分享,共同学习,共同进步。
以下面的程序为例,做一些简单的说明。
程序实现的是将有符号的10进制整数转换成2进制形式,对于负数使用的是补码表示形式。由于我现在是在做FPGA时用到的,用的是12位2进制数,所以程序时将整数转换成12位的有符号2进制数。
我们知道,对于12位2进制数,最高位为符号位,所能表示的整数范围为:-2048~2047.所以我们在转换时首先要保证待转换的整数在这个范围内才能正确的转换。
clear all;
a=[1,2,3,4,5,-6,-7,8];%待转换的10进制数
c(8,12)=0;
for i=1:8
if a(i)<0 %判断是否需要使用补码表示,对于正数补码就是其本身
最后
以上就是单薄书本为你收集整理的matlab 转成二进制,用MATLAB将10进制整数转化成2进制补码形式的全部内容,希望文章能够帮你解决matlab 转成二进制,用MATLAB将10进制整数转化成2进制补码形式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复