Wie ist 0x80000000 gleichgesetzt -2147483648 in java?

Unter den binäre der 0x80000000 bekommen wir

1000 0000 0000 0000 0000 0000 0000 0000

Wie funktioniert dies entspricht -2147483648. Ich habe diese Frage mit diesem Programm.

class a
{
        public static void main(String[] args)
        {
                int a = 0x80000000;
                System.out.printf("%x %d\n",a,a);
        }
}

meow@VikkyHacks:~/Arena/java$ java a
80000000 -2147483648

BEARBEITEN ich gelernt, dass das 2-Komplement verwendet wird zum darstellen von negativen zahlen. Wenn ich versuche gleichzusetzen, dies mit dem 1-Komplement wäre

1's Comp. :: 0111 1111 1111 1111 1111 1111 1111 1111
2's Comp. :: 1000 0000 0000 0000 0000 0000 0000 0000

was auch wieder keinen Sinn, Wie funktioniert 0x80000000 gleichzusetzen -2147483648

  • Wie hast du 0x80000000 aus -2147483648 in den ersten Platz?
  • Danke, muss ich Bearbeiten meine Frage!!!!
  • Sie haben bereits Ihre Frage beantwortet in deiner Frage nur vor dem Bearbeiten. Blick aus dem 2er-Komplement.
  • Für 'a' als eine Ganzzahl, die Ausgabe sieht korrekt. Die max positive ganze Zahl ist 2147383647: oder 0x7FFFFFFF. Wenn Sie fügen Sie 1, um das maximum, es läuft von einem unterzeichneten eine Perspektive und gibt -2147483648.
  • Nein, ich brauche, um klar und mit dieser auf den ersten Platz !!!
InformationsquelleAutor vikkyhacks | 2013-09-15
Schreibe einen Kommentar