Так выполняется перевод байт в целочисленный тип:
byte[] array_of_bytes = new byte[];
Int16 integer_value = BitConverter.ToInt16(array_of_bytes, 0);
Вопрос: как выполнить такое же преобразование два байта в массие в целочисленное значение?
public static int[] GetIntArrayFromByteArray(byte[] byteArray)
{
int[] intArray = new int[byteArray.Length / 4];
for (int i = 0; i < byteArray.Length; i += 4)
{
intArray[i / 4] = BitConverter.ToInt32(byteArray, i);
}
return intArray;
}
Нужно оперировать ссылочными типами. http://tipidannih.narod.ru/ssilochnij.htm
Можно так, используя ссылочные типы
type PSmallint = ^Smallint; // обьявляем ссылочный тип
var array_of_bytes : ^byte;
array_of_integers : Smallint; // Аналог Int16
Begin
array_of_bytes = GetMem(10 ); // указать ваш размер, или как-то получить.
array_of_integers = PSmallint (@array_of_bytes[0])^; // Берём адрес, кастим к ссылочному типу, и домиком берём данные по адресу как int 16-битный
end
type
PSmallint = ^Smallint; // в новых версиях Delphi такой тип уже объявлен
var
BytesArray: array of byte;
SmallIntValue: Smallint;
begin
SmallIntValue := PSmallint(@BytesArray[0])^;
end;
Было бы неплохо, для начала, как минимум задать размер массиву байт Setlength(BytesArray, 2)
, иначе будет ошибка доступа.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня на winforms форме есть несколько TabControl с несколькими вкладкамиПроблема в том, что элементы на них не прогружаются, пока ты сам не откроешь...
I get file from server as a byte[] arrayHow can i convert this array to file (it may be any MIME type) and save it in cache dir with corresponding file type?
Помогите пожалуйста понять, почему у меня следующая ошибка: