我正在将一些 Java 转换为 JavaScript,并且遇到了我无法弄清楚的不匹配问题爪哇:byte ex[] = new byte[(38+5+10+62)/32*32-38];我在 JavaScript 中尝试的转换是:var ex = new Int8Array((38+5+10+62)/32*32-38);Java数组的长度为58JavaScript 数组的长度为 77我认为要么是计算本身需要以不同的方式处理,要么是 Int8Array 需要其他东西。有任何想法吗?
1 回答
catspeake
TA贡献1111条经验 获得超0个赞
正如评论中所指出的,这是由于处理数字的方式不同。JavaScript 使用“数字”(64 位浮点),而 Java 区分不同的原始数字类型,在这种情况下int使用 egers,这意味着/32*32在必须显式完成的 js 中有效地将值向下舍入到最接近的 32 :
Math.floor((38+5+10+62)/ 32 ) * 32 -38
添加回答
举报
0/150
提交
取消
