定点小数,浮点数的表示

这部分是数字设计和计算机体系结构的书上的

在这里插入图片描述

对于任意一个小数应该怎么定点

  1. 输入任意的一个浮点数
  2. 取出整数部分
  3. 取出小数部分
  4. 判断整数部分是否溢出,如果溢出,进行处理
  5. 溢出处理规则:当溢出的时候,如果是正数,那么输出能够表示的最大的正数;如果是负数,就输出能够表示的最小的负数。
  6. 对小数部分进行精度处理
  7. 把小数部分和整数部分合在一起,然后转化成二进制数
  8. 最后输出

简单的写了一个matlab的代码,以供参考

%% This function is used for generate test vector for digital design
% Author: lishuai
function y = data2binvector(channel_sig)
format long;

total_num = length(channel_sig);

data_wid = 16;
int_wid = 3;
frac_wid = 12;

fid1 = fopen('convert_data2binvector.txt','w');

for num_index = 1: total_num
    
    % Get the data
    data = channel_sig(num_index);
    int_data = fix(data); % this function should choose the fix
    frac_data = data - int_data;
    
    % Process the interger part of data and avoid the data overflow
    if int_data >= 2^int_wid
        int_data = 2^int_wid-1;
        % Change the frac_part to be equal to the initial_value
        frac_data = 0;
        for frac_index = 1:frac_wid;
            frac_data = frac_data + 2^(-frac_index);
        end
    end
    if int_data <=-2^int_wid
       int_data = -2^int_wid;
       % Change the frac_part to be equal to the initial_value
       frac_data = +2^(-(frac_wid+2));
    end
        
    % Convert the data to complement
    tmp_data = int_data + frac_data;
    tmp_data = (int_data + frac_data)*2^frac_wid;
    if tmp_data < 0
        tmp_data = tmp_data + 2^(data_wid);
    end
    disp(tmp_data)
    % Convert the data to binary and write the file
    data_vector = dec2binvec(tmp_data, data_wid);
    data_vector = fliplr(data_vector);
    for bit_index = 1:data_wid
       data_vec_bit = data_vector(bit_index);
       fprintf(fid1,'%1d',data_vec_bit);
    end
    fprintf(fid1,'\n');
        
end

fclose(fid1);
y = 0;

fprintf('end\n');
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值