![]() |
||
| funktionale Programmierung |
Material
Motivation
Rekursion
Listen
Funktionen höherer Ordnung
list comprehension
Generator
lazy evaluation
Haskell
Endrekursion
Beispiele
|
|
|
Grundlagen |
Asterix: VDOYHFDHVDU
Cäsar: PYLZFOWBNQCYBUVNCBLGYCHYAYBYCGMWBLCZNYHNTCZZYLN
Schreibe und teste folgende Funktionen:
def setBit(b,n):
"""
gibt das Byte b (byte) mit gesetztem Bit n zurueck,
byte steht fuer int mit Zahlbereich 0..255
"""
def clearBit(b,n):
"""
gibt das Byte b (byte) mit geloeschtem Bit n zurueck,
byte steht fuer int mit Zahlbereich 0..255
"""
def testBit(b,n):
"""
gibt genau dann True zurueck, wenn das Bit n des Bytes b
gesetzt ist
"""
BitManipulation - wiki.python.org, Unary arithmetic and bitwise operations - docs.python.org/py3k/reference
>>> b = int('01000001',2)
>>> a = setBit(b,5)
>>> a
97
>>> bin(a)
'0b1100001'
>>> bin(a)[2:].zfill(8)
'01100001'
>>> c = setBit(a,1)
>>> bin(c)[2:].zfill(8)
'01100011'
>>>
>>> d = clearBit(c,6)
>>> bin(d)[2:].zfill(8)
'00100011'
>>> testBit(d,0)
True
>>> testBit(d,1)
True
>>> testBit(d,2)
False
>>> testBit(d,3)
False
>>> testBit(d,4)
False
>>> testBit(d,5)
True
>>> testBit(d,6)
False
>>> testBit(d,7)
False