Grundlagen der Informatik2

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • 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??

  • 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 ??

  • 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

  • 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??

Jetzt mitmachen!

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