непонятен принцип работы void and(BitSet bitSet)
Следующая программа показывает несколько методов, поддерживаемых структурой данных BitSet в Java
public class BitSetDemo {
public static void main(String args[]) {
BitSet bits1 = new BitSet(16);
BitSet bits2 = new BitSet(16);
// set some bits
for(int i = 0; i < 16; i++) {
if((i % 2) == 0) bits1.set(i);
if((i % 5) != 0) bits2.set(i);
}
System.out.println("Исходная закономерность в bits1: ");
System.out.println(bits1);
System.out.println("\nИсходная закономерность в bits2: ");
System.out.println(bits2);
// AND биты
bits2.and(bits1);
System.out.println("\nbits2 AND bits1: ");
System.out.println(bits2);
// OR биты
bits2.or(bits1);
System.out.println("\nbits2 OR bits1: ");
System.out.println(bits2);
// XOR биты
bits2.xor(bits1);
System.out.println("\nbits2 XOR bits1: ");
System.out.println(bits2);
}
}````
Получим следующее:
Исходная закономерность в bits1:
{0, 2, 4, 6, 8, 10, 12, 14}
Исходная закономерность в bits2:
{1, 2, 3, 4, 6, 7, 8, 9, 11, 12, 13, 14}
bits2 AND bits1:
{2, 4, 6, 8, 12, 14}
bits2 OR bits1:
{0, 2, 4, 6, 8, 10, 12, 14}
bits2 XOR bits1:
{}
Поясните пжл суть "AND", "OR", "XOR" в данном случае.
Ответы (1 шт):
Автор решения: Егор Малько
→ Ссылка
Вызывая методы and, or и xor на bits2, вы получаете, что результат записывается в него же. Чтобы сделать то, что вы задумавали, надо сохранить копию bits2 в другую переменную
BitSet bits2copy = bits2.clone();
а затем после каждой из трех операций менять его значение на исходное, например так
bits2 = bits2copy.clone();
В таком случае эти операции будут работать так, как принято в информатике.