Может кто-нибудь объяснить, почему DataView использует порядок байтов Big Endian
? Пока наши компьютеры работают с Little Endian
. Также ARM процессоры.
Массивы типа Uint32Array()
уже используют Little Endian
. На мой взгляд, это правильно.
// DataView (Big Endian)
const dataview = new DataView(new ArrayBuffer(4));
dataview.setUint32(0, 42);
console.log(new Uint8Array(dataview.buffer).toString());
// result: 0,0,0,42
// Typed Array (Little Endian)
const typearray = new Uint32Array([42]);
console.log(new Uint8Array(typearray.buffer).toString());
// result: 42,0,0,0
Я ожидал, что для числовых типов будет порядок байтов. Это не соответствует.
Я знаю необязательный аргумент методов DataView для litleEndian
.
Но мой вопрос: почему это не установлено по умолчанию?