Speicherinhalt einer float zahl ausgeben
-
TactX schrieb:
angenommen float und unsigned int sind 4*sizeof(char), also 4 groß
Profis schreiben statt diesem Kommentar einfach sizeof(unsigned)
-
Shade Of Mine schrieb:
TactX schrieb:
angenommen float und unsigned int sind 4*sizeof(char), also 4 groß
Profis schreiben statt diesem Kommentar einfach sizeof(unsigned)
Ganrantiert denn der Standard, dass float und unsigned int gleich groß sein müssen? Ich denke nein. Und nur dann funktioniert es korrekt. Korrekterweise müsste man sizeof(float) und sizeof(unsigned int) vergleichen, was ich aber bewusst nicht gemacht habe.
-
TactX schrieb:
Shade Of Mine schrieb:
TactX schrieb:
angenommen float und unsigned int sind 4*sizeof(char), also 4 groß
Profis schreiben statt diesem Kommentar einfach sizeof(unsigned)
Ganrantiert denn der Standard, dass float und unsigned int gleich groß sein müssen? Ich denke nein. Und nur dann funktioniert es korrekt. Korrekterweise müsste man sizeof(float) und sizeof(unsigned int) vergleichen, was ich aber bewusst nicht gemacht habe.
Nein garantiert er nicht. float ist normalerweise 4 Byte groß. Die Größe von int (ob nun unsigned oder nicht) hängt davon ab für welches Betriebssystem das Programm ist. Bei einem 16Bit-System ist ein int immer 2 Byte groß, bei 32Bit ist ein int 4 Byte groß, usw.
-
AJ schrieb:
Die Größe von int (ob nun unsigned oder nicht) hängt davon ab für welches Betriebssystem das Programm ist.
int ist meistens so breit wie ein prozessor-register. es ist der 'natürliche' datentyp der maschine. ein int kann die cpu am einfachsten verarbeiten.
-
kann ich das auch so lösen das ich einen pointer int *x auf den inhalt von float zeigen lass.
oder irgend wie so mit zeiger
-
steht doch hier wies es geht http://www.fun-soft.de/showtopic.php?threadid=9264
-
kann mir wer die funktion memcpy kurz erklären mit den ganzen parameter und rückgabewert
was wird bei dieser funkt kopiert
-
guckst du z.b. hier http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt_memcpy.asp
-
net schrieb:
AJ schrieb:
Die Größe von int (ob nun unsigned oder nicht) hängt davon ab für welches Betriebssystem das Programm ist.
int ist meistens so breit wie ein prozessor-register. es ist der 'natürliche' datentyp der maschine. ein int kann die cpu am einfachsten verarbeiten.
Es hängt nicht vom Prozessor ab, sondern vom Betriebssystem bzw. für welches Betriebssystem das Programm compiliert ist. Ein int ist bei einem 16Bit-DOS Programm trotzdem nur 2 Byte groß, obwohl du es vielleicht unter Win32 (z. B. WindowsNT) ausführst.
-
AJ schrieb:
net schrieb:
AJ schrieb:
Die Größe von int (ob nun unsigned oder nicht) hängt davon ab für welches Betriebssystem das Programm ist.
int ist meistens so breit wie ein prozessor-register. es ist der 'natürliche' datentyp der maschine. ein int kann die cpu am einfachsten verarbeiten.
Es hängt nicht vom Prozessor ab, sondern vom Betriebssystem bzw. für welches Betriebssystem das Programm compiliert ist. Ein int ist bei einem 16Bit-DOS Programm trotzdem nur 2 Byte groß, obwohl du es vielleicht unter Win32 (z. B. WindowsNT) ausführst.
unter dos sind die register ja auch 16 bits breit, der olle 8086 kannte kein eax, ebx, edx usw. nur ax, bx, etc. und ein compiler für dos sollte besser seine 'ints' 16 bits gross machen, alles andere wär' schlecht.
-
Ein Compiler für DOS macht seine ints immer 16Bit groß. Wenn er es anders machen würde, dann wäre das ein riesen Bug des Compilers.