C# 16进制带符号的浮点数怎么转换为10进制

问题描述

下位机发来的4个字节的16进制浮点数怎么用c#转换成10进制的显示

解决方案

解决方案二:
4个字节的16进制浮点数是如何存储的?不是按照浮点数存储的?如果是,那么直接用float接收就好了啊,根本就不需要转换。不管是16进制还是10进制,只要储存方法一致,字节应该是一样的啊
解决方案三:
floatf=BitConverter.ToSingle(bytes,0);
解决方案四:
引用2楼Libby1984的回复:

floatf=BitConverter.ToSingle(bytes,0);

例如“42087e5d”应该是34.1234,但是用这个方法算出来的是1.14405958E+18
解决方案五:
引用3楼u014356761的回复:

Quote: 引用2楼Libby1984的回复:
floatf=BitConverter.ToSingle(bytes,0);

例如“42087e5d”应该是34.1234,但是用这个方法算出来的是1.14405958E+18

字节序问题导致的usingSystem.Linq;BitConverter.ToSingle(bytes.Reverse().ToArray(),0)
解决方案六:
引用

BitConverter.ToSingle(bytes.Reverse().ToArray(),0)

正解

时间: 2024-09-23 18:58:46

C# 16进制带符号的浮点数怎么转换为10进制的相关文章

有哪位高人知道怎么将16进制表示的float64数据转换为10进制数据

问题描述 有哪位高人知道怎么将16进制表示的float64数据转换为10进制数据,我看到有人说"16进制:41F075D841873600转换后是:16.9013671875(十进制)"请问怎么转啊,帮我看看,以3fe36614aadabcc9为例,转出来是多少? 解决方案 解决方案二:41F075D841873600==4751427178548639232用计算器解决方案三:??16进制:41F075D841873600byte[]bs={0x00,0x36,0x87,0x41};

SQL SERVER 16进制与10进制转换

最近工控项目中遇到的16进制与10进制转换,在.NET中比较容易实现,在SQLSERVER中发现没有直接 的转换,尤其是出现超出范围的long负数,即无符号64位整数在sqlserver中的存储.网上找的很多方法 只适用于32位整数和64位正整数,64位负数无法实现,现将使用的转换方法记录下来. 利用SQLSERVER中的varbinary来间接实现. 16进制字符串转10进制bigint(0-FFFFFFFFFFFFFFFF): 由于二进制比较容易转换为bigint 所以先将字符串转为二进制v

SQLSERVER 16进制与10进制转换

原文 SQLSERVER 16进制与10进制转换 最近工控项目中遇到的16进制与10进制转换,在.NET中比较容易实现,在SQLSERVER中发现没有直接的转换,尤其是出现超出范围的long负数,即无符号64位整数在sqlserver中的存储.网上找的很多方法只适用于32位整数和64位正整数,64位负数无法实现,现将使用的转换方法记录下来. 利用SQLSERVER中的varbinary来间接实现. 16进制字符串转10进制bigint(0-FFFFFFFFFFFFFFFF): 由于二进制比较容易

string-c++16进制转10进制问题

问题描述 c++16进制转10进制问题 我用string存储了输入的一个16进制数,现在要把它转换为10进制输出,除了用数位乘上权值之外还有什么方法办到这一点吗? 另外,16进制用int 储存吗?如果可以需要什么语句呢? 解决方案 给你说两个函数,都可以解决这个问题 1.sscanf(str,"%x",&iNum) 2.iNum = strtol(str,**p,16); 你可以查查资料,这两个函数都可以把十六进制的字符串转换成十进制数据: 另外十六进制可以用int存储,只不过

asp.net 10进制字符串转换为十六进制字符串

asp教程.net 10进制字符串转换为十六进制字符串 public string strtohex(string mstr) //返回处理后的十六进制字符串     {     return bitconverter.tostring(     asciiencoding.default.getbytes(mstr)).replace("-", " ");     } /* strtohex */    16进制字符串转换为10进制字符串  public stri

2进制~62进制与10进制的转换

转换 效果如下: //var str="AZ";  //for(var i=0;i<str.length;i++)trace(str.charCodeAt(i));  //charCode:0-9:(48-57);A-Z:(65-90);a-z:(97-122);  //将10进制数N转换成d进制数(以0-9,A-Z,a-z字符表示),d为2-62  function jh_10toD(N, d) {    N = Math.floor(Number(N));    d = Ma

java 10进制转16进制带ox格式输出

问题描述 java 10进制转16进制带ox格式输出 请教:java 怎么把10进制转16进制并且 带ox格式输出 如 60(10进制) 输出 : 0x00,0x00,0x00,0x3c 解决方案 如下代码: public static void main(String[] args) throws IOException { int num=3000; ByteArrayOutputStream baos=new ByteArrayOutputStream(); DataOutputStrea

16进制字符--&amp;gt;10进制数字

方法1: view plaincopy to clipboardprint?#include <stdio.h>     int main()   {       char   szValue[]  =   "0x11";          int    nValude    =   0;              sscanf(szValue,"%x",&nValude);          printf("%d/n",nV

16进制的正数为何显示为10进制数之后就为负数,如何使他总为正数,在线等!!大神,我很急!!

问题描述 16进制的正数为何显示为10进制数之后就为负数,如何使他总为正数,在线等!!大神,我很急!! 如下就是读取NFC标签数据的代码,并在调试窗口将读出的数据显示出来 我的问题是:NFC里面的数据本来就全是正数,但是读取出来后在电脑端显示却为负数,(我猜测是不是,在NFC里面的数全是16进制的,然后手机端读取出来后显示为10进制的数时,出现编码错误,从而导致变为负数了)那么如何将读取出的数据全部显示为正数,求大神赐教,在线等,急!! byte[] result = tagUtil.readA