Мне нужно скрыть большую двоичную строку (длина = 251) переменной типа Long, чтобы сделать некоторые логические операторы вроде (AND, OR и т. Д.), Но в этой операции появляется ошибка из-за длины строки, как я думаю!конвертировать очень большую двоичную строку в длинную
Как я могу решить эту проблему!?
мой код:
System.out.println("value: " + v2.length()); // printing 251
Long decimalValue1 = Long.parseLong(v1, 2); //Error here appear.
if(type == "AND")
{
eq = decimalValue1 & decimalValue2;
}
else if(type == "OR")
{
eq = decimalValue1 | decimalValue2;
}
Ошибка: Для ввода строки: "01000000000000000001000000000010000000010100010001000000100000011101101010010000000001101110001001111101001001000111001000001101101011111000000010000000010010111100010101010011111011011101101111111100"
Что такое ошибка? – bpgeck
Для строки ввода .. –
«Длинный» имеет место для 64 бит. Вы не можете поместить такой большой двоичный код в 'long'. Если вы хотите выполнять логические операции с неограниченным количеством бит, подумайте об использовании класса ['BitSet'] (http://docs.oracle.com/javase/7/docs/api/java/util/BitSet.html) , – RealSkeptic