C# 用什么方法将BitConverter.ToString产生字符串再转换回去
本文介绍了C#用什么方法将BitConverter.ToString产生字符串再转换回去,分享给大家,具体如下:
byte[]bytTemp=System.Text.Encoding.Default.GetBytes("String"); stringstr=System.BitConverter.ToString(bytTemp); Console.WriteLine(str); string[]strSplit=str.Split('-'); byte[]bytTemp2=newbyte[strSplit.Length]; for(inti=0;ic#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种情况,如果字节是ee0000,那么我应该忽略0并将ee转换为整数。但是如果它是ee00ee,那么我应该将ee00ee转换为整数。我每次都会遵循上面提到的相同模式。
我的问题已解决。我正在犯Endianness的错误。我收到的数据是EE00,在转换为整数之前,我应该将它作为00EE。感谢所有为我提供解决方案的人,并抱歉错过了这个重要的问题。
PS:C#使用BitConverter.ToString(byte[]value)转换后字符串带有横杠“-”,去掉横杠方法
使用BitConverter.ToString(byte[]value).Replace("-",""),可去掉横杠
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。