побитовое ИЛИ (в массиве)
1299 просмотра
2 ответа
Мне нужно выполнить побитовое ИЛИ двух массивов байтов в Java. Как я могу это сделать?
byte a= new byte[256];
byte b= new byte[256];
byte c; /*it should contain information i.e bitwise OR of a and b */
Автор: user2260503
Источник
Размещён: 12.11.2019 09:53
Ответы (2)
2 плюса
Это так просто, как с помощью | оператор и цикл:
public static byte[] byteOr(byte[] a, byte[] b) {
int len = Math.min(a.length, b.length);
byte[] result = new byte[len];
for (int i=0; i<len; ++i)
result[i] = (byte) (a[i] | b[i])
return result;
}
Автор: Durandal
Размещён: 05.06.2013 10:46
1 плюс
Я думаю, что вам лучше всего использовать BitSet
. Этот класс уже имеет void or(BitSet bs)
метод для использования.
byte a = new byte[256];
byte b = new byte[256];
byte c = new byte[256];
BitSet bsa = new BitSet();
BitSet bsa = new BitSet();
//fill BitSets with values from your byte-Arrays
for(int i = 0; i < a.length * 8; i++)
if((a[i/8] & (1 << 7-i%8)) != 0)
bsa.set(i);
for(int i = 0; i < a.length * 8; i++)
if((b[i/8] & (1 << 7-i%8)) != 0)
bsb.set(i);
//perform OR
bsa.or(bsb);
//write bsa to byte-Array c
for(int i = 0, byte h; i < a.length; i++){
h = 0;
for(int j = 7; j >= 0; j++){
if(bsa.get(i*8 + 7 - j))
h = h | (1 << j);
}
c[i] = h;
}
Автор: johk95
Размещён: 05.06.2013 07:53
Вопросы из категории :
- java В чем разница между int и Integer в Java и C #?
- java Как я могу определить IP моего маршрутизатора / шлюза в Java?
- java Каков наилучший способ проверки XML-файла по сравнению с XSD-файлом?
- java Как округлить результат целочисленного деления?
- java Преобразование списка <Integer> в список <String>
- java Почему я не могу объявить статические методы в интерфейсе?
- java Библиотека Java SWIFT
- java Выключение компьютера
- java Как я могу воспроизвести звук на Java?
- java Когда выбирать отмеченные и непроверенные исключения
- bit-manipulation Как вы устанавливаете, очищаете и переключаете один бит?
- bit-manipulation Наиболее распространенные побитовые операции C # над перечислениями
- bit-manipulation Как посчитать количество установленных бит в 32-битном целом числе?
- bit-manipulation Что такое операторы побитового сдвига (bit-shift) и как они работают?
- bit-manipulation Как работает замена переменных XOR?
- bit-manipulation Самый быстрый способ зафиксировать реальное (фиксированное / с плавающей запятой) значение?
- bit-manipulation Округление до следующей степени 2
- bit-manipulation Функция Templatized branchless int max / min
- bit-manipulation Понимание PHP & (амперсанд, битовый и) оператор
- bit-manipulation Какой самый быстрый / самый эффективный способ найти старший бит (msb) в целом числе в C?