Обнулить биты числа java

Класс BitSet

Класс BitSet – создаёт особый тип массива, который содержит значения битов. Массив BitSet может увеличиваться в размерах при необходимости. Это делает его схожим с вектором битов. Это устаревший класс, но он был полностью переделан в Java 2, версия 1.4.

Конструкторы

В Java BitSet определяет следующие два конструктора.

Конструктор и описание
1 BitSet()
Этот конструктор создаёт стандартный объект.
2 BitSet(int size)
Этот конструктор позволяет вам указать его первоначальный размер, т.е. количество битов, которое он может содержать. Все биты инициализируются до нуля.

Методы

Класс BitSet в Java реализует интерфейс Cloneable и определяет методы, приведённые в следующей таблице:

Метод и описание
1 void and(BitSet bitSet)
AND содержимое вызываемого объекта BitSet, которое задано bitSet’ом. Результат помещается в вызываемый объект.
2 void andNot(BitSet bitSet)
За каждый 1 бит в bitSet, соответствующий бит очищается в вызываемом BitSet.
3 int cardinality()
Возвращает число заданных битов в вызываемом объекте.
4 void clear()
Обнуляет все биты.
5 void clear(int index)
Обнуляет бит под указанным индексом.
6 void clear(int startIndex, int endIndex)
Обнуляет биты от startIndex (начальный индекс) до endIndex (конечный индекс).
7 Object clone()
Создаёт копию вызываемого объекта BitSet.
8 boolean equals(Object bitSet)
Возвращает true, если вызываемый набор битов эквивалентен тому, что прошёл в bitSet. В противном случае метод возвращает false.
9 void flip(int index)
Возвращает бит под указанным индексом.
10 void flip(int startIndex, int endIndex)
Возвращает биты от startIndex (начальный индекс) до endIndex (конечный индекс).
11 boolean get(int index)
Возвращает текущее состояние бита под указанным индексом.
12 BitSet get(int startIndex, int endIndex)
Возвращает BitSet, который содержит биты от startIndex (начальный индекс) до endIndex (конечный индекс). Вызываемый объект не изменяется.
13 int hashCode()
Возвращает хэш-код для вызываемого объекта.
14 boolean intersects(BitSet bitSet)
Возвращает true, если как минимум одна пара соответствующих битов в пределах вызываемого объекта и bitSet равна 1.
15 boolean isEmpty()
Возвращает true, если все биты в вызываемом объекты – нули.
16 int length()
Возвращает количество бит, необходимых для хранения содержимого в вызываемом BitSet. Значение определяется положением последнего 1 бит.
17 int nextClearBit(int startIndex)
Возвращает индекс следующего очищенного бита (т.е. нулевой бит), начиная с индекса, определённым startIndex (начальный индекс).
18 int nextSetBit(int startIndex)
Возвращает индекс следующего установленного бита (т.е. следующий 1 бит), начиная с индекса, заданным startIndex (начальный индекс). Если бит не установлен, возвращается -1.
19 void or(BitSet bitSet)
OR содержимое вызываемого объекта BitSet с указанным bitSet. Результат помещается в вызываемый объект.
20 void set(int index)
Устанавливает бит, указанный индексом.
21 void set(int index, boolean v)
Устанавливает бит, указанный index в значение, переданное в v. True устанавливает бит, false очищает бит.
22 void set(int startIndex, int endIndex)
Устанавливает биты от startIndex до endIndex.
23 void set(int startIndex, int endIndex, boolean v)
Устанавливает биты от startIndex до endIndex, к значению, прошедшем в v. true sets the bits, false clears the bits.
24 int size()
Возвращает количество битов в вызываемом объекте BitSet.
25 String toString()
Возвращает строчный эквивалент вызываемого объекта BitSet.
26 void xor(BitSet bitSet)
XOR содержимое вызываемого объекта BitSet с указанным bitSet. Результат помещается в вызываемый объект.
Читайте также:  Что такое data питон

Пример

Следующая программа показывает несколько методов, поддерживаемых этой структурой данных:

import java.util.BitSet; 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: Исходная закономерность в bits2: bits2 AND bits1: bits2 OR bits1: bits2 XOR bits1: <> 

Источник

Объясните пожалуйста)

Подскажите в чем тут дело? Я конечно скопировал из предыдущего вопроса код, но во-первых его не принимает валидатор- говорит можно использовать только разрешенные операции, а во-вторых вообще не понимаю что тут и почему. Может кто то объяснить что и зачем тут делается?

Необходимо реализовать публичный метод int resetLowerBits(int number) , который обнуляет все биты в числе number , кроме самого старшего равного единице, и возвращает это число.
Число типа int это 4 байта = 32 бита. Если в метод передано число 3456 , его представление в виде битов будет 00000000 00000000 00001101 10000000 . В методе нужно обнулить все младшие биты, то есть на выходе ожидается что число, представленное в виде битов, будет иметь вид: 00000000 00000000 00001000 00000000 .
Это число 2048 .

Еще несколько примеров:
Пример 1:
на входе: 1
на выходе: 1

Пример 2:
на входе: 4
на выходе: 4

Пример 3:
на входе: 255
на выходе: 128

Параметр метода resetLowerBits может быть от 1 до Integer.MAX_VALUE включительно.
Используй только операции:
1) =
2) |
3) &
4) >>
5)
6) ~
7) цифры от 0 до 9 включительно
8) круглые скобки
9) оператор «return» для возврата результата метода.

ЗАПРЕЩЕНО создавать переменные, использовать циклы, условные операторы и прочее.
Имя параметра метода resetLowerBits не изменяй (должно быть » number «).
Метод main не принимает участия в тестировании.

Источник

Обнулить последние биты

Напишите программу, которая обнуляет заданное количество последних бит числа.

Входные данные
Во входном потоке в единственной строке через пробел записаны два целых числа A (−231≤A≤231−1) и i (0≤i≤32).

Выходные данные
В выходной поток следует записать единственное целое число — число A, у котого обнулены последние i бит.

В каждом байте числа обнулить 0-ой и 7-ой биты и сделать единичными 3-ий и 4-ый биты
Надо: Прочитать беззнаковое целое число из стандартного потока ввода и в каждом байте числа.

Обнулить определенные биты
Как обнулить определенные биты в регистре? Например AX=ABCD нужно сделать AX=0B00. Я тут сам.

Можно ли обнулить биты с использованием XOR
Здравствуйте, есть двоичное 16 битное число, можно ли с помощью XOR обнулить 4, 7, 10 биты.

Обнулить биты указателя типа void*
Привет:) Необходимо занулить, скажем, 4 последних бита указателя типа void*. Пробовал побитовые.

Лучший ответ

Сообщение было отмечено iSmokeJC как решение

Решение

Логические операции: обнулить, установить биты в числах
Даны два числа в двоичном виде. В первом числе старшие (4 разряда) разряды обнулить. Во втором.

Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести результат
нужна помощь в битовых операциях.Ввести целое число A. Инвертировать все биты с 4 по 8, включая.

Источник

Обнулить последние биты

Здравствуйте, прошу помочь мне разобратся как можно написать программу, которая обнуляет заданное количество последних бит числа на Java и еще помочь решить эту задачу.

Обнулить последние биты
Напишите программу, которая обнуляет заданное количество последних бит числа.
Входные данные
Во входном потоке в единственной строке через пробел записаны два целых числа A (−231≤A≤231−1) и i (0≤i≤32).

Выходные данные
В выходной поток следует записать единственное целое число — число A, у котого обнулены последние i бит.

Обнулить последние биты
Обнулить последние биты Напишите программу, которая обнуляет заданное количество последних бит.

Обнулить последние биты
Напишите программу, которая обнуляет заданное количество последних бит числа. Входные данные Во.

В каждом байте числа обнулить 0-ой и 7-ой биты и сделать единичными 3-ий и 4-ый биты
Надо: Прочитать беззнаковое целое число из стандартного потока ввода и в каждом байте числа.

Обнулить определенные биты
Как обнулить определенные биты в регистре? Например AX=ABCD нужно сделать AX=0B00. Я тут сам.

Обнулить биты в одном слове
format mz use16 org 100h x db 00001111b y db ? mov al, x and al, 11110000b

Источник

Оцените статью