【问题标题】:Convert Byte array to Int in xamarin pcl c#在 xamarin pcl c# 中将字节数组转换为 Int
【发布时间】:2017-02-13 13:51:23
【问题描述】:

这是我的问题:我需要在 xamarin pcl 上将字节数组转换为 c# 中的 int。 但我试过这个:

byte[] fromBoardSerial = new byte[3];
fromBoardSerial[0] = 0x04
fromBoardSerial[1] = 0x93
fromBoardSerial[2] = 0xe0

result = BitConverter.ToInt32(fromBoardSerial, 0);

解决方案

Array.Reverse(fromBoardSerial); //call before conversion

结果是:-527236096...而不是..正确的结果应该是:300000 如何从 Int 中的数组字节转换?

谢谢

【问题讨论】:

标签: c# arrays xamarin.forms byte portable-class-library


【解决方案1】:

看来你这里有两个问题:

  1. 字节数。您必须有 4 个字节才能转换为 Int32。
  2. 字节顺序。您似乎尝试“向后”计算您的数字。

看这段代码:

byte[] fromBoardSerial = new byte[4];
fromBoardSerial[0] = 0xe0;
fromBoardSerial[1] = 0x93;
fromBoardSerial[2] = 0x04;
fromBoardSerial[3] = 0x00;

var result = BitConverter.ToInt32(fromBoardSerial, 0); // result = 300000

【讨论】:

  • 我解决了这个问题:Array.Reverse(fromBoardSerial);位转换后...如果您更新答案,我会检查正确答案
猜你喜欢
  • 1970-01-01
  • 2011-04-16
  • 2011-09-04
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
相关资源
最近更新 更多