1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Grundlagen der Informatik2

  • mocetin
  • 4. November 2010 um 16:03
  • Unerledigt
  • mocetin
    2
    mocetin
    Mitglied
    Punkte
    30
    Beiträge
    4
    • 4. November 2010 um 16:03
    • #1

    In meinem zweiten Praktikum geht es darum das ich, wie Java mit verschiedenen Datetypen operiert und wie sich ein impliziter und expliziter Typecast auswirkt.

    Die Programmierung lautet wie folgt :

    class Versuch2a {
    static public void main (String [] args) {
    int i1=50;
    int i2=70;
    int i3=111222333;
    char c1='e';
    char c2='K';
    char c3;
    String s1="HELLO";
    String s2=" WORLD";
    c3=(char)i3;
    i3=(int)c3;
    System.out.println(i1+i2);
    System.out.println((char)(i1+i2)+"\n"+(char)i1+(char)i2);
    System.out.println((char)i1+i2+"\t"+(char)i2+i1+"\t"+((int)c1-i1));
    System.out.println((char)i2+i1+"\t"+(char)i1+i2+"\t"+((int)c1-i1));
    System.out.println(""+(char)i2+i1+"\t"+(char)i1+i2+"\t"+((int)c1-i2));
    System.out.println(c1+"t"+((int)c1)+i2+c2);
    System.out.println(s1+s2);
    System.out.println(i3);
    }
    }

    Die AUsgabe beim Übersetzen wäre :

    120

    x
    2F

    120 F50 51

    120 270 51

    F50 270 31

    et10170K

    HELLO WORLD

    7741


    am Ende bei der Anweisung System.out.println(i3);
    kommt beim übersetzen : 7741
    wie macht er das und wie kommt er auf die zahl??

  • Ringding
    11
    Ringding
    Mitglied
    Reaktionen
    12
    Punkte
    1.237
    Beiträge
    244
    • 4. November 2010 um 17:15
    • #2

    Es werden die unteren 16 Bit genommen (weil char so groß ist) und sign-extended.

    Und die Ausgabe passiert sicher nicht bei der Übersetzung, sondern bei der Ausführung.

  • mocetin
    2
    mocetin
    Mitglied
    Punkte
    30
    Beiträge
    4
    • 5. November 2010 um 12:36
    • #3
    Zitat von Ringding

    Es werden die unteren 16 Bit genommen (weil char so groß ist) und sign-extended.

    Und die Ausgabe passiert sicher nicht bei der Übersetzung, sondern bei der Ausführung.


    meinte ich ja bei der Aus führung :)

    nur kannst du mir bitte das mit dem 16 bit und dem sign extended genauer erklären das versehe ich nicht ganz ? wie rechnet er das kokret ??

  • Ringding
    11
    Ringding
    Mitglied
    Reaktionen
    12
    Punkte
    1.237
    Beiträge
    244
    • 5. November 2010 um 13:17
    • #4
    Zitat von mocetin

    meinte ich ja bei der Aus führung :)

    nur kannst du mir bitte das mit dem 16 bit und dem sign extended genauer erklären das versehe ich nicht ganz ? wie rechnet er das kokret ??



    Schreib dir den Wert (111222333) in Hexadezimaldarstellung oder Binärdarstellung hin, dann siehst du, was er macht.

    Z.B. Hex: 6a11e3d; die letzten 4 Stellen davon: 1e3d (= 7741)
    4 Hex-Stellen = 16 Bit

  • mocetin
    2
    mocetin
    Mitglied
    Punkte
    30
    Beiträge
    4
    • 5. November 2010 um 14:22
    • #5
    Zitat von Ringding

    Schreib dir den Wert (111222333) in Hexadezimaldarstellung oder Binärdarstellung hin, dann siehst du, was er macht.

    Z.B. Hex: 6a11e3d; die letzten 4 Stellen davon: 1e3d (= 7741)
    4 Hex-Stellen = 16 Bit

    Ja macht er tatsächlich aber warum die letzten 4 stellen wenn er i3=(int) c3 als deklaration angibt sollte er das nicht wieder in 32-bit angeben oder verstehe ich da etwas falsch??

  • jimbeam
    11
    jimbeam
    Mitglied
    Reaktionen
    11
    Punkte
    1.201
    Beiträge
    204
    • 5. November 2010 um 14:37
    • #6

    Ja i3 hat dann eh wieder 32-bit, nur ist bei der konvertierung in ein char eben der rest verloren gegangen

    Paddys, hm.....

  • Ringding
    11
    Ringding
    Mitglied
    Reaktionen
    12
    Punkte
    1.237
    Beiträge
    244
    • 5. November 2010 um 14:54
    • #7

    Oder ganz simpel gesagt: in c3 passen nur 16 Bit rein.

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung