JavaでこのCコードを実行することに興味があります:
// sets n's ith bit from right, i starts from 0
void setBit(int* n, int i){
*n = *n | (1 << i);
}
しかし、Java はアドレスを渡すことができないようです。
2つのアプローチを考えましたが、もっと良い方法があるかどうか疑問に思っていましたか?
アプローチ 1: 配列を使用する
// sets n[0]'s ith bit from right, i starts from 0
public void setBit(int[] n, int i){
n[0] = n[0] | (1 << i);
}
アプローチ 2: クラスを使用する
private class Data{
int value;
}
// sets d.value's ith bit from right, i starts from 0
public void setBit(Data d, int i){
d.value = d.value | (1 << i);
}