Java дополнительные функции
Всем добрый день. Подскажите, как можно реализовать эту задачу? Вводится исходное число A и число x. Вывести число А, x-ый бит которого равен 1
import java.util.*;
public class Program1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int x = in.nextInt(), i = in.nextInt();
System.out.println(5 | 7);
}
}
Возникает вопрос, как обращаться к элементу именно x-ой позиции без индекса, а просто с побитовыми операциями?
Ответы (2 шт):
Автор решения: Miron
→ Ссылка
Scanner sc = new Scanner(System.in);
int number = Integer.parseInt(sc.nextLine());
int numberOfRazr = Integer.parseInt(sc.nextLine());
if((number << numberOfRazr) % 2 == 0) {
System.out.println((int) (number + Math.pow(2, numberOfRazr - 1)));
} else {
System.out.println(number);
}
Тест:
10
3
14
Сначала узнаем, есть ли на этом разряде двоичного числа единицы. Потом, если нет, добавляем двоичное число 1(нули, число которых равно numberOfRazr)
Автор решения: timur
→ Ссылка
Scanner in = new Scanner(System.in);
int x = in.nextInt(), i = in.nextInt();
System.out.println(x | (1 << i));
x = 0b101
1 << i = 0b010
0b101 | 0b010 = 0b111