Probleme mit Datum (beim Auslesen aus Datei)
-
FILE *data; char buff[19]; struct date datum; [...] fread(buff,12,1,data); datum.da_year=buff[0]+((buff[1]+0x1)<<8);
Angenommen in buff ist jetzt das Jahr 2003 gespeichert (als int, nicht ASCII)
Der Inhalt ist also D3 07 oder 211 7.
Nach der oben dargestellten Aktion müsste in datum aber 2259 stehen.
Allerdings findet man auch hier 2003 vor. Wie kann das sein ?
Die Datei wird ordentlich ausgelesen. Hab die Variableninhalte vor und
nach der Aktion geprüft. Werte stimmen in jedem Fall (buff).
-
Was isn dass für ne Dat. Text oder Binär?
-
hm? ein 4facher linksshift müsste doch reichen, oder?
[ Dieser Beitrag wurde am 20.05.2003 um 18:24 Uhr von dEUs editiert. ]
-
Nein, die 2. 8 Bits werden ja mit 256(2hoch8) multipliziert, und deshalb müssen
sie um 8 stellen verschieben.
-
Ich konstruiere ja theoretisch aus 2 gleichwertigen Bytes (char) einen Integerwert bestehend aus 2 Bytes.
01234567 01234567 -> 01234567 89ABCDEF
-
OT: Können die Posts mir zugeordnet werden ? (Und danach dieser Beitrag gelöscht werden ?)