0

具体的には、割り当てに制約があり、乗算と2つ以上のif-elseステートメントを使用できません。このメソッドは、0xAAA5などの数値を取り、4ビットセクションの1つを0x1などの指定されたニブルに置き換える必要があります。これが今の私のコードです:

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

    return num;
}

基本的には左シフト*4したいのですが、掛け算やif-else文なしではどうしたらいいのかわかりません。

4

1 に答える 1

2

4 * which==which << 2なので、それを使用できます。

于 2013-01-20T04:03:17.907 に答える