问题标题:
如何使用matlab将16进制数转化为16位的2进制数之后忽略2进制数的最高两位,再转成带符号的十进制数呢我是读取的txt文件,文件中的数据均为DFECC001CFFEACF0等格式,将其拼为DFECC001CFFE
问题描述:
如何使用matlab将16进制数转化为16位的2进制数之后忽略2进制数的最高两位,再转成带符号的十进制数呢
我是读取的txt文件,文件中的数据均为DFECC001CFFEACF0等格式,将其拼为DFECC001CFFEACF0等格式的16进制数之后,转化为2进制数,并忽略其转换后的最高两位,得到14位2进制数,这14位2进制数,再根据其最高位是不是1来判断是否为补码,若为补码,则转换为是10进制负数,若最高位为0,则转换为10进制正数。
彭远芳回答:
clearf id=fopen('文件名','r');a=fscanf(fid,'%s');fclose(fid);b=reshape(a,[4,length(a)/4])';c=uint16(hex2dec(b));x=dec2bin(c);s=bitget(c,14);c=bitset(c,15,s);c=bitset(c,16,s);out=zeros(size(c));forii=1...
点击显示
其它推荐
热门其它推荐