У меня есть массив с шестнадцатеричных значений, например:Преобразование массива байтов шестнадцатеричной в десятичную
var b = new byte[] {0x27, 0x01, 0x00, 0x00};
Мне нужно преобразовать это десятичное значение, но когда я использовал код ниже, получить неожиданный результат. Ожидаемое 295, но результат 654376960.
if (BitConverter.IsLittleEndian) Array.Reverse(b);
//int myInt = b[0] | (b[1] << 8) | (b[2] << 16) | (b[3] << 24);
int value = BitConverter.ToInt32(b, 0);
Что случилось?
'decimal' это конкретные данные введите .NET (технически 'System.Decimal') и конкретный (и тот же) тип данных в C#. Вы ищете 'int' /' System.Int32' – xanatos