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;

数値を HEX 形式に変換idしてから連結する方法はpacket?

すでに Google を見ましたが、解決策が見つかりませんでした。

ありがとうございました。

4

3 に答える 3

4

プロトタイプのtoString()関数をNumber使用して、数値の 16 進数表現を取得できます。

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

// or

var hex = id.toString( 16 );

編集

で識別される Unicode シンボルを追加したいだけのようですid。この用途にString.fromCharCode()

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

String.fromCharCode次の関数を使用できます。

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

16 進表現を取得する場合は、次を使用できます。

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 に答える