tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
1348
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Razorhawk
    Razorhawk Razorhawk ist offline Webdesigner und MSP
    Registriert seit
    Aug 2002
    Ort
    Berlin
    Beiträge
    1.363
    Speicherbelegung: ein Beispiel

    Maschinenbefehl:
    60240 01100111 00000000 11101011 01000101

    dekodiert: Maschinenbefehl SR C 0

    ganze Zahl: 1728113477

    intern dargestellt als:
    01100111 00000000 11101011 01000101

    reelle Zahl: 2^-50
    (1+2^-8+2^-9 +2^-10+2^-12 +2^-14+
    2^-15 + 2^-17 + 2^-21 + 2^-23)

    intern dargestellt als:
    01100111 00000000 11101011 01000101


    Welcher Inhalt wird denn nun wirklich durch das
    4-Byte-Wort
    01100111 00000000 11101011 01000101
    repräsentiert ?
     
    Sebastian Schütze
    Offizieller
    Microsoft Junior Student Partner
    und Microsoft Partner
    Humboldt Universität zu Berlin

    Email: sebastian.schuetze@studentpartners.de
    Website der MSP: www.studentpartners.de

    Webdesign: Razorstudio
    Website: www.razorstudio.de
    Email: Sebastian.Schuetze@razorstudio.de

  2. #2
    Frankdfe Frankdfe ist offline Mitglied Gold
    Registriert seit
    Apr 2003
    Beiträge
    151
    Hallo!

    Bei der von Neumann-Rechnerarchitektur (auf die die gänigen Rechner basieren) wird im Speicher nicht zwischen Daten und Maschinencode unterschieden. Du könntest also (zumindest theoretisch) ein Programm schreiben, dass dein 4-Byte-Wort einmal als Befehl, einmal als ganze Zahl und einmal als reele Zahl auffasst.

    Es kommt also letztendlich nur darauf an, wie (bzw. wo) du dieses 4-Byte-Wort ausliest. Falls du C programmieren kannst, könntest du das Ganzzahl/Reall-Verhalten mal selbst ausprobieren (d.h. einen int-Zeiger in einen float-Zeiger umwandeln, und den Wert beobachten)
     
    Der Glückliche phantasiert nie. (Sigmund Freud)
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)
    Daraus folgt: Die Genie's sind nicht glücklich.

  3. #3
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Falls du C programmieren kannst, könntest du das Ganzzahl/Reall-Verhalten mal selbst ausprobieren (d.h. einen int-Zeiger in einen float-Zeiger umwandeln, und den Wert beobachten)
    int nach float, kein Problerm.
    float nach int, alles nach dem Komma bzw. Punkt wird abgeschnitten.


    mfg
    umbrasaxum
     

  4. #4
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.802
    Blog-Einträge
    5
    Zitat Zitat von Tobias K.
    int nach float, kein Problerm.
    float nach int, alles nach dem Komma bzw. Punkt wird abgeschnitten.
    Bei einem Typecast: ja. Aber ich glaube Frankdfe meinte das eher so:
    Code :
    1
    2
    
    int i = 12345;
    float *pf = (float *)&i;
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  5. #5
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Kommt das in dem Fall nciht aufs selbe raus?


    mfg
    umbrasaxum
     

  6. #6
    Frankdfe Frankdfe ist offline Mitglied Gold
    Registriert seit
    Apr 2003
    Beiträge
    151
    Nein, und das ist genau die Antwort auf die ursprüngliche Frage. Es wird beidesmal auf die gleiche Adresse verwiesen, die den gleichen Inhalt unterschiedlich interpretiert (einmal als int, einmal als float)
     
    Der Glückliche phantasiert nie. (Sigmund Freud)
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)
    Daraus folgt: Die Genie's sind nicht glücklich.

  7. #7
    Registriert seit
    Apr 2002
    Ort
    Delmenhorst (Niedersachsen)
    Beiträge
    3.567
    moin


    Hatte grad falsch gedacht, wollte eher darauf hinaus das ein int (genauer unsigned int) gleich einem unsigned float ist.


    mfg
    umbrasaxum
     

  8. #8
    Avatar von Razorhawk
    Razorhawk Razorhawk ist offline Webdesigner und MSP
    Registriert seit
    Aug 2002
    Ort
    Berlin
    Beiträge
    1.363
    Das heißt es komt dann letztendlich auf das Programm an, dass dem Betriebsystem sagt, dass dieser Binärcode nun Maschinensprache ist an der Speicherzelle und an einer anderen halt int bzw. float?
     
    Sebastian Schütze
    Offizieller
    Microsoft Junior Student Partner
    und Microsoft Partner
    Humboldt Universität zu Berlin

    Email: sebastian.schuetze@studentpartners.de
    Website der MSP: www.studentpartners.de

    Webdesign: Razorstudio
    Website: www.razorstudio.de
    Email: Sebastian.Schuetze@razorstudio.de

  9. #9
    Frankdfe Frankdfe ist offline Mitglied Gold
    Registriert seit
    Apr 2003
    Beiträge
    151
    Ja genau .
     
    Der Glückliche phantasiert nie. (Sigmund Freud)
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt. (Albert Einstein)
    Daraus folgt: Die Genie's sind nicht glücklich.

Ähnliche Themen

  1. Integer zu Binärcode HILFE!
    Von EnfantTerrible im Forum Java
    Antworten: 4
    Letzter Beitrag: 21.11.06, 20:51
  2. Problem mit Binärcode
    Von Schlubl im Forum Javascript & Ajax
    Antworten: 6
    Letzter Beitrag: 23.09.06, 09:03
  3. Datei in Binärcode verwandeln
    Von DoLoop im Forum .NET Archiv
    Antworten: 6
    Letzter Beitrag: 11.04.05, 21:27
  4. Denkproblem mit Binärcode?
    Von Kerwin im Forum PHP
    Antworten: 4
    Letzter Beitrag: 16.10.04, 16:36
  5. a la binärcode
    Von Daensch im Forum PHP
    Antworten: 2
    Letzter Beitrag: 30.08.04, 18:10