package com.javarush.task.task39.task3903;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.BitSet;
/*
Неравноценный обмен
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please enter a number: ");
long number = Long.parseLong(reader.readLine());
System.out.println("Please enter the first index: ");
int i = Integer.parseInt(reader.readLine());
System.out.println("Please enter the second index: ");
int j = Integer.parseInt(reader.readLine());
System.out.println("The result of swapping bits is " + swapBits(number, i, j));
}
public static long swapBits(long number, int i, int j) {
long a = number >> i & 1;
long b = number >> j & 1;
if (a != b)
number = number & ~((1 << i) | (1 << j)) | (a << j) | (b << i);
return number;
}
}
Дмитрий Змеевский
40 уровень
Кто может объяснить что тут происходит? Я не понимаю работает или нет
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Александр
13 июля 2020, 05:53
https://javarush.com/groups/posts/1925-pobitovihe-operacii
0
Sergey
17 мая 2020, 17:43
Magic!
0