Jau, dabei ist aber darauf zu achten, daß man die Zeichen als unsigned char (bzw. uint8_t) ausliest.
Ansonsten wird als oberes Bit beim Schieben nicht die 0 nachgeschoben, sondern das Vorzeichen. Bei Werten von 0x80..0xff bzw -128..-1 müsste man dann explizit noch mit einer Maske die oberen Bits löschen.
Lesezeichen