У меня есть функция в JavaScript, которая ожидает, что массив байтов будет передан в него из кода Native C++. Например:Печать шестнадцатеричных или десятичных значений массива байтов в JavaScript
function OnEvent(event, data1)
{
console.log("data1[0] = " + data1[0]);
}
Я хотел бы, чтобы он печатал 0x55 или даже десятичное его значение. По какой-то причине, я вижу следующее в журнале консоли:
Как я могу напечатать шестнадцатеричное значение байта или даже десятичного значения без печати символа?
UPDATE
Я пошел по ссылке ниже, благодаря Vinothbabu. Я использовал функцию распаковки:
function unpack(str) {
var bytes = [];
$("#homePage").append("str.length = " + str.length + "<br>");
for(var i = 0, n = str.length; i < n; i++) {
var char = str.charCodeAt(i);
$("#homePage").append("char is equal to " + char + "<br>");
bytes.push(char >>> 8, char & 0xFF);
}
return bytes;
}
Он печатает «символ равен 65533» и значение «байт» выводит «255, 253», который означает, что он имеет значение 0xFFFD.
Это не данные/полезная нагрузка, которую я ожидал. Вы знаете, почему есть 2 байта?
Try data1 [0] .ToString (16) – bfavaretto
http://codereview.stackexchange.com/questions/3569/pack-and-unpack-bytes -to-strings – Thalaivar
Спасибо Vinothbabu. Я следил за вашей ссылкой, связанной с упаковкой/распаковкой. Однако, используя unpack(): 'code' function unpack (str) { var bytes = []; $ ("# homePage"). Append ("str.length =" + str.length + ""); bytes.push (char >>> 8, char & 0xFF); } обратные байты; } 'code' Он печатает« char равно 65533 », а байты выводятся 255, 253, что означает, что оно имеет значение 0xFFFD –
codeshark
"); для (var i = 0, n = str.length; i