我正在將一些 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
提交
取消
