我很感兴趣,在Java中这样做的C代码:什么是干净的方式来修改java中的函数内的参数?
// sets n's ith bit from right, i starts from 0
void setBit(int* n, int i){
*n = *n | (1 << i);
}
但是,它看起来像Java不能通过地址,所以这将是一些清洁方法?
我想到了两种方法,但我想知道是否有更好的方法来做到这一点?
方法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);
}
“我想知道是否有更好的方法来做到这一点? - 没有。 –
感谢Sam,我甚至没有注意到这个功能! – Popcorn
是否有任何理由不使用'BitSet'来设置位? –