1. 首页 > 智能数码 >

16进制转浮点数 16进制转浮点数计算方法

今天乐乐来给大家分享一些关于16进制转浮点数计算方法方面的知识吧,希望大家会喜欢哦

16进制转浮点数 16进制转浮点数计算方法16进制转浮点数 16进制转浮点数计算方法


1、需要准备的材料分别有:电脑、C语言编译器。

2、1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。

3、2、在test.cpp文件中,输入C语言代码:printf("%x", 1515);。

4、首先 浮点数2.5写成二进制应该为10.1(其中整数部分10b=2d, 小数部分0.12=1所以0.1b为0.5d)。

5、然后要把10.1规格化(写成1.xxxx 2^n的形式,有点像科学计数法)得到1.012^1(其中2^1中的1为阶码, 1.01为有效数字)加上2.5为正数,这就得到三部分信息:1. 有效数字为1.01.2. 阶码为1.3. 符点数为正数而c/c++的float类型结构为:1. 的23位记录规格化小数中的有效数字(但是不保存最前面的1)2. 之后的8位记录阶码(上面的阶码转换到这里要+127)3. 的一位表示正负数(0为正数,1为负数)最终得到的二进制数为:高位 低位0 10000000 01000000000000000000000整理得:0100 0000 0010 0000 0000 0000 0000 0000转到16进制得:40200000注意:0 无穷大 在符点数里比较特殊另外处理(我也不太明白-_-!)#include {// char cByte[4];//方法一// for (int i=0;i// {// cByte[i] = Byte[i];// }//// float pfValue=(float)&cByte;return ((float)Byte);//方法二}long FloatTohex(float HEX)//浮点数到十六进制转换1{return ( long )&HEX;}void FloatToByte(float floatNum,unsigned char byteArry)////浮点数到十六进制转换2{char pchar=(char)&floatNum;for(int i=0;i{byteArry=pchar;pchar++;}}voiEND_IF;d main(){unsigned char floatToHex[4];unsigned char hexbyte[4]={0xcd,0xCC,0xCC,0x3D};//传输数据为3d cc cc cdfloat Hdecimal=0.0;float flh=0.4;// int num=sizeof(hexbyte);// printf("num= %d\n",num);printf("\n 浮点数为:\n %f\n",Hdecimal);2.5的十六进制格式不是0x40200000,而是:整数部分:0x2小数部分:0.516=8=0x8结合第0位:起来:0x2.8那是件比看起来复杂的事哦。

6、要是真好奇,你看看这个文章。

本文到这结束,希望上面文章对大家有所帮助。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息