问题描述
有哪位高人知道怎么将16进制表示的float64数据转换为10进制数据,我看到有人说“16进制:41F075D841873600转换后是:16.9013671875(十进制)”请问怎么转啊,帮我看看,以3fe36614aadabcc9为例,转出来是多少?
解决方案
解决方案二:
41F075D841873600==4751427178548639232用计算器
解决方案三:
??16进制:41F075D841873600byte[]bs={0x00,0x36,0x87,0x41};//<---floatvalue=BitConverter.ToSingle(bs,0);//value=16.9013671875//byte[]bs={0x3f,0xe3,0x66,0x14,0xaa,0xda,0xbc,0xc9};//doublevalue=BitConverter.ToDouble(bs,0);
解决方案四:
如果是整型这很好转换,但是浮点型,很难转,不同的计算机,不同的语言,转出来的值都有可能不一样,最好的办法就是3fe36614aadabcc9以位操作的方式,设置float64的原型二进制值,然后再输出这个类型的变量的值floats=0;s|=0xFFFFFFFFFFFFFFFF;s&=0x3fe36614aadabcc9;然后输出s的值,这样就可以实现转换了
解决方案五:
引用2楼gomoku的回复:
??16进制:41F075D841873600C#codebyte[]bs={0x00,0x36,0x87,0x41};//<---floatvalue=BitConverter.ToSingle(bs,0);//value=16.9013671875//byte[]bs={0x3f,0xe3,0x66,0x14,0xaa,0xda,0xbc,0xc9};//doublevalue=BitConverter.ToDouble(bs,0);
用bitConvert可以满足你的要求了~
解决方案六:
引用2楼gomoku的回复:
??16进制: 41F075D841873600C#codebyte[]bs={0x00,0x36,0x87,0x41};//<---floatvalue=BitConverter.ToSingle(bs,0);//value=16.9013671875//byte[]bs={0x3f,0xe3,0x66,0x14,0xaa,0xda,0xbc,0xc9};//doublevalue=BitConverter.ToDouble(bs,0);
顶
解决方案七:
转成二进制,再转十进制
时间: 2024-08-22 14:07:16