JavaScript - 将四字符数组转换为整数
如何将四字符数组转换为整数?
How can i convert a four-character array to an integer?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如何将四字符数组转换为整数?
How can i convert a four-character array to an integer?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
我想这取决于您想要如何将字符值映射到整数位。
一种直接的解决方案是:
这会产生整数
0x01020304
。这使用输入数组中的整数,对于字符,结果可能会有所不同,具体取决于所使用的字符。更新:使用
charCodeAt()
将字符转换为代码点。I guess that depends on how you want to map the character values to the integer's bits.
One straight-forward solution would be:
This produces the integer
0x01020304
. This uses integers in the input array, for characters the result might be different depending on the characters used.Update: use
charCodeAt()
to convert characters to code points.或者
如果取决于您数组的填充顺序..
or
if depending on the order you array is filled..
您正在尝试将这些字符转换为 ASCII 字符代码并将这些代码用作字节值。这可以使用
charCodeAt
来完成。例如:这将按预期返回 2016886139。
但是,请记住,与 C++ 不同,JavaScript 不一定使用一字节、256 个字符集。例如,
'€'.charCodeAt(0)
返回 8364,远远超出等效 C++ 程序允许的最大值 256。因此,任何 0-255 范围之外的字符都会导致上述代码行为不稳定。使用 Unicode,您可以将上面的内容表示为“电位㵻”。
You're trying to turn those characters into ASCII character codes and using the codes as byte values. This can be done using
charCodeAt
. For instance:This returns 2016886139 as expected.
However, bear in mind that unlike C++, JavaScript will not necessarily use a one-byte, 256-character set. For instance,
'€'.charCodeAt(0)
returns 8364, well beyond the maximum of 256 that your equivalent C++ program would allow. As such, any character outside the 0-255 range will cause the above code to behave erraticaly.Using Unicode, you can represent the above as "砷㵻" instead.