如何将二进制文字传递给JavaScript评价?[重复]

问题描述 投票:0回答:1

在我开始之前,请不要告诉我不要使用。eval;我知道输入是完全卫生的,所以它是安全、快速和简单的。

我正在使用一个JavaScript引擎来驱动一个我用Java写的计算器。要做到这一点,我只是简单地将输入连接成一个字符串,然后将它传递给JavaScript。例如,点击按钮 1, +5 构建字符串的结果 "1+5". 我在十六进制的时候也是这样做的,把 0x 前的字母,所以 A, +8 给我 "0xA+8. 我的问题来自于其二进制模式的编程。我试着通过 0b1101+0b10 (这就是Java处理二进制字符的方式),但它只是抛出一个错误。我如何在JavaScript中处理二进制字元?

java javascript binary eval literals
1个回答
2
投票

更新。 从ES2015开始,JavaScript支持二进制 Number 字符。

console.log(0b1101+0b10) // 15 (in decimal)

或者,你可以使用一个字符串,并使用 Number.parseInt 以2为基数。

var a = parseInt('1101', 2) // Note base 2!
var b = parseInt('0010', 2) // Note base 2!
console.log(a+b) // 15 (in decimal)

用于显示不同基数的数字。Number#toString 也接受一个基数。

(15).toString(2) // 1111

注:如果直接将用户输入的信息传递给 eval(),使用regex来确保输入的内容只包含数字和你期望的运算符 (+, -、等)。)

© www.soinside.com 2019 - 2024. All rights reserved.