当前位置:   article > 正文

32位浮点数(16进制表示)转化为10进制数值的简易MATLAB代码_双精度浮点数 转 十进制 matlab

双精度浮点数 转 十进制 matlab

#32位浮点数(16进制表示)转化为10进制数值的简易MATLAB代码
因为测试后需要把数据(16进制表示)转化为正常人类直观看的懂的10进制数,但是在网上找了很久都没找到相关的方法,于是用自己蹩脚的MATLAB语言简单写了一个转换方法(应该挺简单的)。第一次用博客记录,不太会用。
实验数据与转换公式如下图所示:在这里插入图片描述

在这里插入代码片
close all;
clear;
clc;
%功能:将32位的16进制科学表示的浮点数值转化为10进制
%1、先转化为2进制
data=dec2bin(hex2dec('C41C6000'));%输入数据     C41C6000  3CBCB9A1
d=double(data)-48;  %char类型数字用assii码表示,数字0对应48,所以要减去48.
L=length(data);
D=32-L;
%不足32位时补足32位(高位为0的情况)
for i=1:D
     d=[i-i,d];
end
b=char(d+48)%b的值为二进制值
a=d(1,2:9);  %a指的是阶数的二进制
c=bin2dec(char(a+48));%c指的是阶数的十进制
e=2^(c-127);
o=(-1)^d(1,1);
r=e*o;
r1=(2^(c-127))*((-1)^d(1,1));%浮点数转化公式的前半部分
w=d(1,10:32);    %取数值部分
l=length(w);
m=0;
for j=1:l
    m=m+w(1,j)/(2^j);
end
p=(1+m)*r  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

结果:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/986519
推荐阅读
相关标签
  

闽ICP备14008679号