16-Bit im Zweierkomplement Zahl aus Datei lesen



  • Naja, ein short müsste doch immer 2 Bytes haben, läuft nicht zwangsweise auf 16 Bits hinaus, aber auf nicht allzu-exotischen Dateisystemen muss die Dateigröße ja auch byte-aligned sein. Damit gibt es dann ja keine 16-Bit-Datei (außer ein char ist genau 16 bits groß).
    Naja, ich denke sowieso, der OP will für ein 8-Bit-Char-System programmieren..



  • Badestrand schrieb:

    Naja, ein short müsste doch immer 2 Bytes haben,

    Mit solchen "immer" Aussagen wäre ich bei Standard-Fragen vorsichtig - ein short hat mindestens 16 Bit, kann/darf aber auch größer sein.



  • CStoll schrieb:

    Mit solchen "immer" Aussagen wäre ich bei Standard-Fragen vorsichtig - ein short hat mindestens 16 Bit, kann/darf aber auch größer sein.

    Hm, aber ich dachte ein Byte hätte x Bits und ein short wären 2 Bytes 😕



  • Die einzige "genau" Aussage im Ansi-Standard ist: "Ein char ist 1 Byte groß" (wobei offengelassen wird, wieviel Bit das entspricht). Ansonsten gibt es nur relative Aussagen wie "int ist mindestens so groß wie short" und Angaben zu Mindestgrößen (in Form von Minimalwerten für SHORT_MIN etc).



  • Hach ist das alles merkwürdig.. 😕



  • Badestrand schrieb:

    Hach ist das alles merkwürdig.. 😕

    Wieso? Das Ansi-Kommitee war weitsichtig genug zu erkennen, daß 8-Bit-Rechner nicht das Ende der Fahnenstange sein werden - und hat deshalb die Möglichkeit offengelassen, daß der Compiler die optimalen Datengrößen für sein System festsetzt.

    (in Java wird int immer 4 Byte groß bleiben, selbst wenn wir alle mit 256-Bit-Systemen arbeiten *duck'n'run*)



  • CStoll schrieb:

    (in Java wird int immer 4 Byte groß bleiben, selbst wenn wir alle mit 256-Bit-Systemen arbeiten *duck'n'run*)

    kein grund für *duck'n'run*. it's a feature, not a bug.
    in Java wird es dann wahrscheinlich einen int256 o.ä geben.



  • Und alle zwei Jahre muß man umdenken, wie denn nun die aktuell gültigen Datentypen heißen 🙄

    (aber kehren wir wieder zurück zum Thema - hier geht's immer noch um C++)



  • CStoll schrieb:

    Und alle zwei Jahre muß man umdenken, wie denn nun die aktuell gültigen Datentypen heißen

    nein, warum? die alten datentypen wird es auch noch geben und VM und compiler weden dafür sorgen, dass deren nutzung keine effizienzeinbussen mit sich bringt. nur wir armen C-frickler müssen uns mit variablen datenwortbreiten, manuellem speichermanagement und ähnlichem zeug aus der programmierer-steinzeit, bis zum jüngsten tag herumärgern.
    🙂



  • (ich wußte es, es war ein Fehler, hier das J-Wort zu erwähnen)

    Ein int in C oder C++ wächst mit den verwendeten Prozessoren mit, ein int in Java nicht (und ob er auf 256-Bit-Systemen genauso "einfach" umgesetzt werden kann wie auf heutigen Rechnern, ist die andere Frage). Das hat beides seine Vor- und Nachteile.


Anmelden zum Antworten