Matlab有符号十进制小数转换为有符号十六进制数

本文介绍了如何使用Matlab将有符号十进制小数转换为有符号十六进制数,并将生成的十六进制数写入.coe文件。过程包括生成20位有符号小数,转换为补码,再转换成十六进制,最后展示匹配的十进制和十六进制数据。
摘要由CSDN通过智能技术生成
实现内容:

1) 通过Matlab将生成的随机小数扩大为20位有符号位
2) 将拓展后的数据变为补码格式: 负数变为补码,正数保持不变
3)将补码格式的十进制小数转换为有符号十六进制数
4)将生成的十六进制数写入.coe文件中

代码实现
% generate the random number
for i = 1: 10
    M(i,1)= (-1)^i *rand(1);
end
    
N = length(M);
Radix       = 16;
Coeff_width = 20;

% convert the fraction number to integer
% 20 bits with 1 signed bit
M_mul = round(M.*2^(Coeff_width-1));  

% convert the coefficient to complement format
for i = 1: N
    if(M_mul(i) < 0)
        comple_M(i) = 2^Coeff_width + M_mul(i);
    else
        comple_M(i) = M_mul(i);
    end
end

%% write the real part .coe file
fid = fopen('M.coe','w');%File storage path
fprintf(fid,'Radix = %d; \n',Radix);
fprintf(fid,'Coefficient_Width = %d; \n',Coeff_width);
fprintf(fid,'CoefData = ');  

% convert the complem
  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值