为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 (00123 + 34351) 在 javascript、java 和 python 中返回

为什么 (00123 + 34351) 在 javascript、java 和 python 中返回

噜噜哒 2023-04-25 16:01:42
console.log(00123 + 34351); //in javascript, outputs 34434print(00123 + 34351); //in python, outputs 34434在 javascript 中,输出 34434 在 python 中,输出 34434然而,删除前导零即 (123 + 34351) 给出了正确的答案,即 34474
查看完整描述

3 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

0是八进制的常用前缀,十进制数是 83。做

console.log(00123+34351)

相当于

console.log(83+34351)

编辑:请注意,在 python 3+ 中,前缀是0o


查看完整回答
反对 回复 2023-04-25
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

不,正确答案确实是 34434(以 10 为基数)。在许多语言中以 0 开头的数字是八进制的,因此您的加法运算是 123(以 8 为底)+ 34351(以 10 为底)。将八进制整数转换为十进制,您就会明白其中的道理。



查看完整回答
反对 回复 2023-04-25
?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

不确定 Java,但在 JavaScript 和 Python 2 中,以 开头的数字0是八进制数,即00123实际上是83十进制数。

查看完整回答
反对 回复 2023-04-25
  • 3 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信