我正在將一些 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數(shù)組的長度為58JavaScript 數(shù)組的長度為 77我認為要么是計算本身需要以不同的方式處理,要么是 Int8Array 需要其他東西。有任何想法嗎?
1 回答

catspeake
TA貢獻1111條經(jīng)驗 獲得超0個贊
正如評論中所指出的,這是由于處理數(shù)字的方式不同。JavaScript 使用“數(shù)字”(64 位浮點),而 Java 區(qū)分不同的原始數(shù)字類型,在這種情況下int
使用 egers,這意味著/32*32
在必須顯式完成的 js 中有效地將值向下舍入到最接近的 32 :
Math.floor((38+5+10+62)/ 32 ) * 32 -38
添加回答
舉報
0/150
提交
取消