1

我有以下代码:

var packet = "\xFF\xFF\xFF\xFF";
packet += "\x6D";
packet += "127.0.0.1:" + this.port;
packet += "\x00";
packet += this.name;
packet += "\x00";
packet += this.state;
packet += "\x00";
packet += "stateA";
packet += "\x00";
packet += "sender";
packet += "\x00";

我有var id = 32;

我想得到这样的东西:

...
packet += "\x00";
packet += "sender";
packet += "\x00";
packet += "\x20;

如何将id数字转换为 HEX 格式,然后将其与packet

我已经看到了谷歌,但我还没有找到解决方案。

谢谢你。

4

3 回答 3

4

您可以使用原型的toString()功能Number来获取您的号码的十六进制表示:

var hex = (23).toString( 16 );

// or

var hex = id.toString( 16 );

编辑

看来您只想添加一个由id. 为此用途String.fromCharCode()

packet += String.fromCharCode( id );
于 2013-05-17T14:34:14.557 回答
2

您可以使用以下String.fromCharCode功能:

packet += String.fromCharCode(32); // " "

如果你想获得十六进制表示,你可以使用

var hex = (32).toString(16), // "20"
    byte = JSON.parse('"\\u'+('000'+hex).slice(-4)+'"'); // " " == "\u0020"

…但这很丑:-)

于 2013-05-17T14:37:03.323 回答
1

您可以使用它String.fromCharCode(23)来执行此操作。

EG(在浏览器控制台中):

> String.fromCharCode(23) == "\x17"
true

请参阅如何从 JavaScript 中的 ASCII 值创建字符串或字符?了解更多一般信息。

于 2013-05-17T14:40:36.167 回答