Я заинтересован в этом это C-код в Java:Что такое чистый способ изменения аргументов внутри функции в 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);
}
«Мне было интересно, есть ли лучшие способы сделать это?» - нет. –
спасибо Сэму, я даже не заметил эту особенность! – Popcorn
Есть ли причина не использовать 'BitSet' для установки битов? –