Thread unverständnis zu sprintf (22 answers)
Opened by also at 2010-08-13 21:19

Gast also
 2010-08-14 15:48
#140685 #140685
2010-08-14T13:17:05 topeg
Aber "%8" bildet eine Quersumme über 8Bit "C*" nimmt ein oder mehr 8Bit Zeichen. Soweit ich das sehe bedeutet "%8C" "mache ein Quersumme über die ersten 8Bit die von C gelesen wurden". Du willst doch 8Bit in Perl-Zahlen umwandeln, oder sehe ich das falsch?

Edit: Korrektur

Gerade ausprobiert. "%8C*" nimmt die "C*" Blöcke und bildet über die ersten 8Bit aus jedem Block eine 8Bit Quersumme. Wenn im zu zerlegenden String nur ein Zeichen (8Bit) ist, wird nichts verändert, da eine 8bittige Quersumme über einen 8bittigen wert das Ergebnis nicht verändert.


Doch, es wird was verändert. Bei z.B. unblocking_Lesen aus dem keyboardbuffer ist der Unterschied ob z.B. "1" oder "Z" oder "\n". Das müßte ich erst extra prüfen ob numerisch etc. Mit unpack und %8C* erhalte ich den char korrekt gecastet zurück. Ich will im Falle key '1' nicht Resultat 0x01, sondern u_char 0x31. Bei "Z" brauche ich kein 'Z' oder "Z", sondern ein 0x5A. Dieses unpack erzwingt über das xor nach $var wahrscheinlich den korrekten cast. Doch mittlerweile erledige ich solche BitSachen mit inline_C. Absolut empfehlenswert !!
Last edited: 2010-08-14 15:54:40 +0200 (CEST)

View full thread unverständnis zu sprintf