1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Grundlagen der Informatik2

  • mocetin
  • 4. November 2010 um 16:03
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • mocetin
    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
    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
    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
    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
    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
    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

  • Ringding
    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.

  1. Datenschutzerklärung
  2. Impressum