首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二进制连接

二进制连接
EN

Stack Overflow用户
提问于 2013-05-17 22:31:59
回答 3查看 3K关注 0票数 1

我有以下代码:

代码语言:javascript
复制
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;

我想得到这样的东西:

代码语言:javascript
复制
...
packet += "\x00";
packet += "sender";
packet += "\x00";
packet += "\x20;

如何将id数字转换成十六进制格式并与packet连接

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

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-17 22:34:15

您可以使用toString() function of the Number prototype来获取您的数字的十六进制表示:

代码语言:javascript
复制
var hex = (23).toString( 16 );

// or

var hex = id.toString( 16 );

编辑

您似乎只想添加一个由id标识的unicode符号。为此,请使用String.fromCharCode()

代码语言:javascript
复制
packet += String.fromCharCode( id );
票数 4
EN

Stack Overflow用户

发布于 2013-05-17 22:37:03

您可以使用String.fromCharCode函数:

代码语言:javascript
复制
packet += String.fromCharCode(32); // " "

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

代码语言:javascript
复制
var hex = (32).toString(16), // "20"
    byte = JSON.parse('"\\u'+('000'+hex).slice(-4)+'"'); // " " == "\u0020"

…但这很丑陋:-)

票数 2
EN

Stack Overflow用户

发布于 2013-05-17 22:40:36

您可以使用String.fromCharCode(23)来完成此操作。

例如(在浏览器控制台中):

代码语言:javascript
复制
> String.fromCharCode(23) == "\x17"
true

有关更多常规信息,请参见How to create a string or char from an ASCII value in JavaScript?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16611614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档