Javascript表达式将16bit格式计算为普通格式

时间:2018-02-11 08:49:54

标签: javascript

如何在javascript中以16位格式计算表达式。例如,表达式[0x10] + [011] - [11]等于158,我们如何得到它?

编辑

这不是我的作业,我试图解决javascript如何将该表达式转换为158.是的,我得到结果为14,但是控制台显示我158.所以对我来说为什么控制台显示158.这很奇怪。

1 个答案:

答案 0 :(得分:1)

在你的例子中,

[0x10] + [011] - [11]

等于

`[16]+[9]-[11]` 
<10>十六进制, 和[16]、[9]、[11]是数组。在javascript,[a1,a2,....,an]+[b1,b2,b3...bn]中,所有元素都将转换为字符串,结果为 [a1.toString(),a2.toString(),...,an.toString()+ b1.toString(),b2.toString(),b3.toString(),...,BN。的toString()]。

在您的情况下[0x10] + [011],两个数组只有元素,因此结果是&#39; 16&#39; +&#39; 9&#39; =&#39; 169&#39;,然后'169'-[11],&#39; 169&#39;将被转换为数字,因此169-11结果为158。

在javascript中,两个字符串可以使用&#39; +&#39;追加,但&#39; - &#39;是不允许的,所以它会尝试将字符串转换为数字。