Преобразовать байтовый массив, представленный для типизированного значения столбца sql_variant, в long/int64
У меня есть значение байтового массива из 10 элементов, взятых из sql_variant
столбец в моей таблице базы данных и хотел бы преобразовать его в длинное значение. Я попробовал это.
byte []a = new byte[10]{ 127, 1, 0, 202, 154, 59, 0, 0, 0, 0 };
long i = BitConverter.ToInt64(a, 0);
Console.WriteLine("{0}", i);
но это не дает мне правильный результат. Я ожидаю, что это будет 10000000000
,
Спасибо, если вы могли бы предложить мне некоторые идеи классов или методов в C#, я могу посмотреть на.
1 ответ
10000000000 в шестнадцатеричной записи - 02540BE400.
Массив байтов для этого значения в обратном порядке:
byte[] a = new byte[10] { 0x00, 0xE4, 0x0B, 0x54, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00};
или в десятичной записи:
byte[] a = new byte[10] { 0, 228, 11, 84, 2, 0, 0, 0, 0, 0 };
Для этого массива ваша функция возвращает ожидаемый результат: 10000000000.