如何在javascript中以16位格式计算表达式。例如,表达式[0x10] + [011] - [11]等于158,我们如何得到它?
编辑
这不是我的作业,我试图解决javascript如何将该表达式转换为158.是的,我得到结果为14,但是控制台显示我158.所以对我来说为什么控制台显示158.这很奇怪。
答案 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;是不允许的,所以它会尝试将字符串转换为数字。