[gelöst] LONG = im zweiterkomplement kodierter Int? :confused:



  • Hallöle,

    ich würde gern ein wenig am Bitmap Format experimentieren, um wieder in C einzusteigen. Dazu habe ich auf Wikipedia recherchiert und hätte da eine Frage:

    Das Bitmap Format kennt neben WORD und DWORD den Datentyp LONG, bei dem es sich laut Wiki um "einen im Zweierkomplement kodierten 32bit Integer" handelt.

    Was ist der Unterschied zwischen "einen im Zweierkomplement kodierten Integer" und einem stinknormalen Int? Soweit ich mich ans 1. Semester Medieninformatik erinnere sind alle (unsigned) Integer als Zweierkomplement gespeichert, oder nicht? Demnach gibt es also keinen Unterschied und LONG wäre einfach ein int (bzw. besser long)?

    Wär nett, wenn das jemand kurz bestätigen oder eben verbessern könnte 🙂

    Danke & Gruß,
    Micha



  • Ob eine Variable vom Datentyp "int" wirklich garantiert im Zweierkomplement gespeichert ist, kommt auf die Sprache an in der du programmierst. C und C++ garantieren es meines Wissens nach z.B. nicht. Aber die Wahrscheinlichkeit, dass du eine Maschine findest auf der das anders gemacht wird, ist doch recht gering. Äh.. was war jetzt deine Frage? Die hast du dir doch schon selbst beantwortet.



  • hallo,

    ich glaube nicht, dass dies so gemeint ist.

    der "LONG" datentyp auf wikipedia hat 4 bytes, genauso wie ein stinknormaler integer.

    die grenzwerte zwischen long und int sind daher die selben.

    ergo ist es egal, ob du in deinem quelltext (unsigned) int oder long verwendest.



  • Kümmelkorn schrieb:

    Soweit ich mich ans 1. Semester Medieninformatik erinnere sind alle (unsigned) Integer als Zweierkomplement gespeichert, oder nicht?

    Die signed, nicht die unsigned. Und auch nicht alle, auch wenn ich kein Beispiel für eine Architektur mit Einerkomplement oder Sign/Magnitude kenne.



  • Danke 🙂 dann ist alles klar. Wollte nur noch mal sichergehen, nicht dass ich gleich am Anfang irgendeine falsche Annahme mache.

    @Bashar: ja, meinte natürlich signed. danke 🙂


Anmelden zum Antworten