Int/Char

Maurice16

Mitglied
Habe ein keines Problem.
Wäre nett wenn ihr mir dabei helfen könntet.

int i3=111222333;
char c3;
c3=(char)i3
i3=(int)c3
System.out.println(i3);

Er gibt mir eine Zahl aus, irgentwas mit 7244 oder so ähnlich.
Genau kann ich es jetzt nicht sagen.
Wie kommt man da drauf?
Mir ist klar, dass irgentwas von der Zahl wegfällt, da nur 16Bit reserviert sind.
Aber wie kommt man auf diese 7xxx?

Danke!!
 
Hi Maurice16 und herzlich Willkommen hier bei tutorials.de :)

Zu deiner Frage gehe ich mal den Weg deines Programmes Schritt für Schritt durch (bisschen gekürzt):

Java:
int i3=111222333;
Die Variable wird erstellt und hat den Wert (binär) 00000110 10100001 00011110 00111101.

Java:
char c3 = (char) i3
Hier wird c3 deklariert und die letzen 16 Bit von i3 genommen, also steht in c3 nun 7741, oder 00011110 00111101 binär.

Java:
i3=(int)c3
Hier wandelst du deine 16 Bit Zahl wieder in eine 32 Bit Zahl um. Hier werden links einfach nochmal 16 Bit mit 0en aufgefüllt, die Zahl bleibt also gleich, weshalb dann 7741 rauskommt:
00000000 00000000 00011110 00111101

@CPoly: Tolle Erklärung ;)


Gruß
BK
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort =)
Eine Frage bleibt noch.
Wie kommt man so schnell an den 32 stellingen binär wert?
Verstehen tuh ich es, aber gibt es dafür ein Programm?

Danke
 
Hallo,

int i3 --> 32 Bit (–2.147.483.648 ... 2.147.483.647)
char c3 --> 16 Bit Unicode Zeichen (0x0000 ... 0xFFFF)

int i3 = 111222333; --> Hex: 06A11E3D
char c3 = (int)i3; --> Hex: 1E3D (es haben nur 16 Bit Platz)
i3 = (int)c3; --> Dezimal: 1E3D = 7741

Falls du noch Fragen hast, nur zu...
Freundliche Grüsse
CKingZesi

@Sorry an alle...
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort =)
Eine Frage bleibt noch.
Wie kommt man so schnell an den 32 stellingen binär wert?
Verstehen tuh ich es, aber gibt es dafür ein Programm?

Danke

Der Windowstaschenrechner kann dies zum Beispiel auch, genau wie der gnome-calculator bei meinem Ubuntu ;) Auch etwas "bessere" Hardware-Taschenrechner können das.

Gruß
BK
 
Und falls man eh gerade im Browser ist

Code:
javascript:(111222333).toString(2);

In die Adresszeile eingeben.
 
Zurück