我想设置一个字节的最大值或最小值,如果我试图分配的值更大。有没有更好的方法,而不是用if语句检查呢?
例子:
int[] arr = new int[128]; // assume int array is filled with random values
byte[] arr2 = new byte[128];
for (int i = 0; i < arr.length; i++) {
if (arr[i] > 127) {
arr2[i] = 127;
} else if (arr[i] < -128) {
arr2[i] = -128;
} else {
arr2[i] = arr[i];
}
}
有没有办法用逐位运算替换if/else语句?或者有没有更聪明/更快的方法?
1条答案
按热度按时间lrpiutwd1#
你可以锁链
Math.min(int, int)
以及Math.max(int, int)
电话。比如,如果
arr[i]
小于-128
那得花点时间-128
. 如果结果大于127
这需要时间127
. 应该包括你所有的案子。