Einfache Datentypen



  • TactX schreib, int mind. 16 bit, da 8bit=1byte also int mind. 2byte und nicht 4 byte, wie failbit schreibt oder?



  • Diamond schrieb:

    TactX schreib, int mind. 16 bit, da 8bit=1byte also int mind. 2byte und nicht 4 byte, wie failbit schreibt oder?

    Unter der i.A. falschen Annahme, dass 1 Byte 8 Bit hat, richtig.





  • SG1 schrieb:

    Diamond schrieb:

    TactX schreib, int mind. 16 bit, da 8bit=1byte also int mind. 2byte und nicht 4 byte, wie failbit schreibt oder?

    Unter der i.A. falschen Annahme, dass 1 Byte 8 Bit hat, richtig.

    Was heißt i.A.? Und wieso falsche Annahme? Wenn ich meinen DSL Downstream nehmen (1024kbit) und durch 8 teile komm ich auf 128kb, was ja auch hinkommt, wo nehme ich da etwas falsch an?



  • "i.A." kenne ich persoenlich als "im Auftrag", aber das passt nicht so wirklich...

    ein byte hat gewoehnlicherweise 8 bit. es gibt aber architekturen, da gibt es bytes mit 5, 7 oder gar 36 bit.
    dann gilt z.b. mal sowas: sizeof(char) == sizeof(short) == sizeof(int) == sizeof(long) == 1, weil ein byte 36 bit lang ist und von char bis long alles reinpasst.

    aber lass dich von sowas nicht irremachen. wenn einer mit ungewoehnlichen architekturen zu tun hat und eine frage stellt, dann kuendigt der das schon an.

    es gibt uebrigens CHAR_BIT und weil du laut standard von sizeof(char) == 1 ausgehen kannst, hast du so die breite eines bytes und kannst weiterrechnen.

    wann immer dir so runde zahlen wie 7, 8, 15, 16, 31, 32 in den sinn kommen, die mit typbreiten zu tun haben, schau in der <limits.h> nach. kann nie schaden.



  • c.rackwitz schrieb:

    ein byte hat gewoehnlicherweise 8 bit. es gibt aber architekturen, da gibt es bytes mit 5, 7 oder gar 36 bit.

    Wobei im Standard definiert ist, daß ein C-Byte (=char) mindestens 8 Bit groß ist.



  • failbit schrieb:

    das ist maschinenabhängig.
    auf einer 32bit maschine wird ein int 4byte groß sein, auf einer 64bittigen 8byte. entsprechendes gilt für die anderen skalaren datentypen.

    Auf meinem AMD64/Linux-Rechner, dessen Architektur nicht ganz unwichtig ist, kommt dagegen heraus:

    sizeof(int) = 4
    sizeof(void*) = sizeof(long) = 8

    (Diese Entscheidung wurde u.a. getroffen, um den Code klein zu halten damit er besser in den Cache passt.)



  • c.rackwitz schrieb:

    da (<limits.h>):
    http://www.dinkumware.com/manuals/reader.aspx?b=c/&h=limits.html

    Was soll unter desem Link zu finden sein, bei mir erscheint irgendwas über irgendwelcher Lizenz aber nicht über limits.h



  • then follow these steps to the Dinkum C99 Library Reference Manual.

    Klick doch einfach mal auf die Schritte... (Hint: Bild in der Mitte)...



  • (Hint: Bild in der Mitte)...
    Ach so... Danke!


Anmelden zum Antworten