温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#用什么方法将BitConverter.ToString产生字符串再转换回去

发布时间:2021-10-15 16:52:12 来源:亿速云 阅读:134 作者:柒染 栏目:编程语言

这篇文章将为大家详细讲解有关C#用什么方法将BitConverter.ToString产生字符串再转换回去,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

byte[]  bytTemp  =  System.Text.Encoding.Default.GetBytes("String");    string  str  =  System.BitConverter.ToString(bytTemp);    Console.WriteLine(str);      string[]  strSplit  =  str.Split('-');    byte[]  bytTemp2  =  new  byte[strSplit.Length];    for  (int  i  =  0;  i  <  strSplit.Length;  i++)        bytTemp2[i]  =  byte.Parse(strSplit[i],  System.Globalization.NumberStyles.AllowHexSpecifier);    string  str2  =  System.Text.Encoding.Default.GetString(bytTemp2);    Console.WriteLine(str2);

c#bitconverter.ToString转换为十六进制字符串

我使用 BitConverter.ToString(bytes)将字符串转换为十六进制字符串,我将其进一步转换为整数或浮点数。

但是输入流由0组成,表明字节值为0.所以假设我有一个整数,它由2个字节的输入表示,从位置x开始,第一个由 EE 组成,而第二个字节为 00 。现在当我使用 BitConverter.ToString(bytes,x,2).Replace( - ”,”)时,输出为 EE00 ,其整数值为 60928 ,但在这种情况下,输出应该是 238 字节 EE 为整数。

但在其他情况下,2个字节可能是 EE01 ,其整数值 60929 在这种情况下是正确的。

任何建议如何解决我的问题?

由于有人说这个问题令人困惑,我会重申我的问题我有很长的十六进制字符串作为输入。在十六进制字符串中,

1)前12个字节表示字符串。 2)接下来的11个字节也代表了其他一些字符串。 3)接下来1个字节表示整数。 4)接下来的3个字节表示整数。 5)接下来的4个字节表示整数。 6)接下来的4个字节表示浮点数。 7)接下来的7个字节表示字符串。 8)接下来的5个字节表示整数。

因此,对于第4种情况,如果字节是ee 00 00,那么我应该忽略0并将ee转换为整数。但是如果它是ee 00 ee,那么我应该将ee00ee转换为整数。我每次都会遵循上面提到的相同模式。

我的问题已解决。我正在犯Endianness的错误。我收到的数据是EE 00,在转换为整数之前,我应该将它作为00 EE。感谢所有为我提供解决方案的人,并抱歉错过了这个重要的问题。

PS:C# 使用BitConverter.ToString(byte[] value)转换后字符串带有横杠“-”,去掉横杠方法

使用BitConverter.ToString(byte[] value).Replace("-", ""),可去掉横杠

关于C#用什么方法将BitConverter.ToString产生字符串再转换回去就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI