Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中打印字节数组的十六进制或十进制值 JavaScript中有一个函数,它期望字节数组从本地C++代码传递到它。例如: function OnEvent(event, data1) { console.log("data1[0] = " + data1[0]); }_Javascript_C++_Char_Byte - Fatal编程技术网

在JavaScript中打印字节数组的十六进制或十进制值 JavaScript中有一个函数,它期望字节数组从本地C++代码传递到它。例如: function OnEvent(event, data1) { console.log("data1[0] = " + data1[0]); }

在JavaScript中打印字节数组的十六进制或十进制值 JavaScript中有一个函数,它期望字节数组从本地C++代码传递到它。例如: function OnEvent(event, data1) { console.log("data1[0] = " + data1[0]); },javascript,c++,char,byte,Javascript,C++,Char,Byte,我想让它打印0x55,甚至是它的十进制值。出于某种原因,我在控制台日志中看到以下内容: 如何在不打印字符的情况下打印字节的十六进制值甚至十进制值 更新 感谢Vinothbabu,我访问了下面的链接。我使用了解包功能: function unpack(str) { var bytes = []; $("#homePage").append("str.length = " + str.length + "<br>"); for(var i = 0, n

我想让它打印0x55,甚至是它的十进制值。出于某种原因,我在控制台日志中看到以下内容:

如何在不打印字符的情况下打印字节的十六进制值甚至十进制值


更新

感谢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; 
}
函数解包(str){
var字节=[];
$(“#主页”)。追加(“str.length=“+str.length+”
”; 对于(var i=0,n=str.length;i”); push(char>>>8,char&0xFF); } 返回字节; }
它打印“char等于65533”,而“bytes”的值打印出“255253”,这意味着它的值为0xFFFD


这不是我所期望的数据/有效负载。你知道为什么会有2个字节吗?

我相信这可以解决问题:

console.log("data1[0] = " + data1[0].toString(16));

请尝试数据1[0]。toString(16)谢谢Vinothbabu。我关注了你关于包装/拆包的链接。但是,使用unpack():
code
函数unpack(str){var bytes=[];$(“#homePage”).append(“str.length=“+str.length+”
”);for(var i=0,n=str.length;i”);bytes.push(char>>8,char&0xFF)}返回字节;}
code
它打印“char等于65533”,字节打印出255253,这意味着它的值为0xFFFD