[Python-de] Bits rotieren
Detlef Lannert
lannert at uni-duesseldorf.de
Do Jun 21 09:08:02 CEST 2007
mk <lopoff at gmx.net> wrote:
> ich hab ein Problem eine Variable so zu definieren das
> sie nur wie ein 'char' unter C/C++ agiert.
Einen char-Typ gibt es unter Python nicht. Entweder definierst Du den
über eine eigene Klasse, die entsprechende Operatoren realisiert, oder Du
maskierst die höherwertigen Bits bei jeder Operation selbst aus.
> for h in range(0,7):
> for a in fd_in_file: # Zeile einlesen
> line_len=len(a)
> for b in range(0,line_len): # zeichen
> z=a[b:b+1] # einzeln einlesen
> x=ord(z) # string nach integer
> y= x << 1 # einmal verschieben
> print chr(y) # zeichen anzeigen
Etwa so:
import sys
for h in range(8):
for a in open(FILE): # Zeile einlesen
for z in a[:-1]:
x = ord(z) # string nach integer
y = x << h
y = (y & 255) | (y >> 8) # einmal rotieren
sys.stdout.write(chr(y)) # zeichen anzeigen
sys.stdout.write("\n")
Kommt natürlich nicht viel Lesbares raus.
Detlef
Mehr Informationen über die Mailingliste python-de