16进制数组转成10进制数据问题

achillesvi 2014-12-13 02:39:32
有一个4字节的16进制数据数组,{0x54, 0x8B,0xA7,0x56},直接通过进制转换(16to10)得到数据是1418438486,程序中使用BitConverter.ToInt32得到的是1453820756,程序中怎样才能得到16进制数组直接转换成的10进制数呢?
...全文
532 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
achillesvi 2014-12-18
  • 打赏
  • 举报
回复
确实如楼上所说,高位、低位这里还未理解透,然后通过程序验证,结果一致了。 还有一个方法,转成字符串,再16进制转10进制,感觉有点笨。。。 string StringOut = ""; foreach (byte InByte in temp) { StringOut +=String.Format("{0:X2} ", InByte); } StringOut=StringOut.Replace(" ",""); long strutc = Convert.ToInt32(StringOut, 16);
devmiao 2014-12-13
  • 打赏
  • 举报
回复
byte[] b = {0x54, 0x8B,0xA7,0x56}; b = b.Reverse().ToArray(); 然后接上你的代码
luhr 2014-12-13
  • 打赏
  • 举报
回复
引用 1 楼 linxi0093 的回复:
1418438486按进制转换成16进制是{0x54, 0x8B,0xA7,0x56} 1453820756按进制转换成16进制是{0x56,0xA7, 0x8B,0x54} 进制转换16进制的高位对应十进制的高位,低位对应的是十进制的低位,而程序转换的时候正好相反。要想一样就在转换前对相应的顺序进行调整即可。
我先占位,晚上回去研究研究
Oo凌轩oO 2014-12-13
  • 打赏
  • 举报
回复
1418438486按进制转换成16进制是{0x54, 0x8B,0xA7,0x56} 1453820756按进制转换成16进制是{0x56,0xA7, 0x8B,0x54} 进制转换16进制的高位对应十进制的高位,低位对应的是十进制的低位,而程序转换的时候正好相反。要想一样就在转换前对相应的顺序进行调整即可。

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧