Вы можете использовать reinterpret(Int32, databin[13:16])[1]
. Последний [1]
необходим, потому что reinterpret
возвращает вам представление.
Теперь обратите внимание, что read
поддерживает передачу типов. Так что если вы сначала прочитали 12 байтов данных из вашего файла, например, как это read(arx, 12)
и затем запустите read(arx, Int32)
, вы получите желаемое число без каких-либо преобразований или распределения векторов.
Наконец, обратите внимание, что преобразование в Char
в вашем коде заключается в преобразовании числа Unicode в символ. Я не уверен, что это именно то, что вы хотите (может быть, это так). Например, если первый прочитанный байт имеет значение 200
, вы получите:
julia> Char(200)
'È': Unicode U+00c8 (category Lu: Letter, uppercase)
РЕДАКТИРОВАТЬ еще один комментарий заключается в том, что когда вы выполняете преобразование в Int32
из 4 байтов, вы должны обязательно проверить, должно ли оно быть закодировано как big-endian или little-endian (см. * 1019). * постоянные и ntoh
, hton
, ltoh
, htol
функции)