Я пытаюсь сделать программу для вычисления дополнения 1 после ввода двоичного числа. Это то, что я должен далеко:Поиск дополнения 1
import java.util.Scanner;
public class BitWiseComplement {
public static void main(String[] args) {
Scanner keysIn = new Scanner(System.in);
System.out.println("Please enter your number: ");
long originalNum = keysIn.nextLong();
System.out.println(~originalNum);
}
}
Однако, когда я вхожу 0111011, я получаю -111012. Я думал, что оператор ~ должен был инвертировать число так, чтобы все 0s были 1s и все 1s равны 0s.
Любая помощь?
Первый бит - это знак. Вместо этого используйте unsigned. – ceving
@ceving Java не имеет длинный тип без знака. – Boann
@Boann Не проходит ни одного дня, что я не узнаю что-то новое, что Java не может. – ceving