0

更具体地说,我的作业有一些限制,不允许我使用乘法和超过 2 个 if-else 语句。该方法应采用一个数字,例如 0xAAA5,并用给定的半字节(例如 0x1)替换其中一个 4 位部分。这是我现在的代码:

public static int setNibble(int num, int nibble, int which) {
    num = num & (0xFFFF - (0xF << (4 * which)));
    num = num | ( (nibble) << (4 * which) );

    return num;
}

我基本上只想左移 which*4,但如果没有乘法或某种 if-else 语句,我无法弄清楚如何做到这一点。

4

1 回答 1

2

4 * which== which << 2,所以你可以使用它。

于 2013-01-20T04:03:17.907 回答