本文整理汇总了Python中bitstring.BitArray.prepend方法的典型用法代码示例。如果您正苦于以下问题:Python BitArray.prepend方法的具体用法?Python BitArray.prepend怎么用?Python BitArray.prepend使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bitstring.BitArray
的用法示例。
在下文中一共展示了BitArray.prepend方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: booth
# 需要导入模块: from bitstring import BitArray [as 别名]
# 或者: from bitstring.BitArray import prepend [as 别名]
def booth(m, r, x, y):
# Initialize
totalLength = x + y + 1
mA = BitArray(int = m, length = totalLength)
rA = BitArray(int = r, length = totalLength)
A = mA << (y+1)
S = BitArray(int = -m, length = totalLength) << (y+1)
P = BitArray(int = r, length = y)
P.prepend(BitArray(int = 0, length = x))
P = P << 1
print "Initial values"
print "A", A.bin
print "S", S.bin
print "P", P.bin
print "Starting calculation"
for i in range(1,y+1):
if P[-2:] == '0b01':
P = BitArray(int = P.int + A.int, length = totalLength)
print "P + A:", P.bin
elif P[-2:] == '0b10':
P = BitArray(int = P.int +S.int, length = totalLength)
print "P + S:", P.bin
P = arith_shift_right(P, 1)
print "P >> 1:", P.bin
P = arith_shift_right(P, 1)
print "P >> 1:", P.bin
return P.int
示例2: testPrependAfterCreationFromDataWithOffset
# 需要导入模块: from bitstring import BitArray [as 别名]
# 或者: from bitstring.BitArray import prepend [as 别名]
def testPrependAfterCreationFromDataWithOffset(self):
s1 = BitArray(bytes=b'\x00\x00\x07\xff\xf0\x00', offset=21, length=15)
self.assertFalse(s1.any(0))
s1.prepend('0b0')
self.assertEqual(s1.bin, '0111111111111111')
s1.prepend('0b0')
self.assertEqual(s1.bin, '00111111111111111')
示例3: huff_encode
# 需要导入模块: from bitstring import BitArray [as 别名]
# 或者: from bitstring.BitArray import prepend [as 别名]
def huff_encode(text):
freq = defaultdict(int)
for s in text:
freq[s] += 1
tree = [ [f, [s, ""]] for s,f in freq.items() ]
heapify(tree)
while len(tree) > 1:
l = heappop(tree)
h = heappop(tree)
for n in l[1:]:
n[1] = '0' + n[1]
for n in h[1:]:
n[1] = '1' + n[1]
heappush(tree, [l[0] + h[0]] + l[1:] + h[1:])
root = heappop(tree)[1:]
codes = dict([(s, "0b"+c) for s,c in root])
# Header
enc = BitArray()
for s,c in root:
enc += BitArray(bytes=s)
enc += BitArray(uint=len(c), length=8)
enc += BitArray("0b"+c)
enc.prepend(BitArray(uint=len(root), length=8))
for s in text:
enc += BitArray(codes[s])
return enc
示例4: rc
# 需要导入模块: from bitstring import BitArray [as 别名]
# 或者: from bitstring.BitArray import prepend [as 别名]
def rc(t):
if t % 255 == 0:
return True
r = BitArray('0b10000000')
for i in range(1, t%255 + 1):
r.prepend('0b0')
# A especificacao do NIST diz para fazer uma soma de bits.
# Essa operacao em um bit, eh exatamente equivalente ao XOR
r[0] = (r[0] ^ r[8])
r[4] = (r[4] ^ r[8])
r[5] = (r[5] ^ r[8])
r[6] = (r[6] ^ r[8])
r = r[:8]
return r[0]
示例5: rc
# 需要导入模块: from bitstring import BitArray [as 别名]
# 或者: from bitstring.BitArray import prepend [as 别名]
def rc(self, t):
if t % 255 == 0:
return 1
R = BitArray(bin='10000000')
for i in range(1, t%255 + 1):
R.prepend('0b0')
R[0] = (R[0] + R[8]) % 2
R[4] = (R[4] + R[8]) % 2
R[5] = (R[5] + R[8]) % 2
R[6] = (R[6] + R[8]) % 2
R = R[:8]
return R[0]
示例6: gen_syndrome
# 需要导入模块: from bitstring import BitArray [as 别名]
# 或者: from bitstring.BitArray import prepend [as 别名]
def gen_syndrome(pBits):
errorfield = ([BitArray('0b1'), \
BitArray('0b11')])
# build all possible error combinations as
# block errors
for length in range(3,pBits+1):
# set first and last bit of errorstring and
# count up in between
for i in range(2**(length-2)):
error = BitArray('0b1')
error.append(BitArray(uint=i, length=length-2))
error.append('0b1')
errorfield.append(error)
for i in errorfield:
error = i
length = len(error)
print(error)
fh = open('syndrome82','a+')
# place block errors in every possible position in
# data string
for pos in range(190-length+1):
datastring = BitArray(length=190-length-pos)
datastring.append(error)
datastring.append(BitArray(length=pos))
# generate syndrome from datastring
syndrome = crc.crc82(datastring)
# make strings a multiple of 4 bit for nicer printing
datastring.prepend('0b00')
syndrome.prepend('0b00')
fh.write(str(syndrome) + ' ' + str(datastring) + '\n')
fh.close()
示例7: loadImage
# 需要导入模块: from bitstring import BitArray [as 别名]
# 或者: from bitstring.BitArray import prepend [as 别名]
def loadImage(input, output, text, key):
img = Image.open(input)
# TODO - assert RGB/RGBA
print img.mode
#text = "Hello World!"
bits = BitArray(bytes=text)
lbits = BitArray(hex(bits.len))
lbits.prepend(32 - lbits.len)
print text
print bits.bin
print lbits.bin
# print bits[1] & 1
data = img.getdata()
# print len(data)
counter = 0
newdata = []
for i in data:
c = counter - lbits.len
p = counter % len(key)
if (counter < lbits.len):
q = (key[p] ^ (lbits[counter] & 1))
newdata.append((i[0] ^ q,i[1],i[2],255))
elif (c < bits.len):
q = (key[p] ^ (bits[c] & 1))
# print "q:" + str(q) + " ,i:" + str(i[0]) + " ,i ^ q:" + str(i[0] ^ q)
newdata.append((i[0] ^ q,i[1],i[2],255))
else:
newdata.append((i[0],i[1],i[2],255))
counter += 1
# for i in newdata:
# print i
img.putdata(newdata)
img.save(output)
示例8: testPrepend
# 需要导入模块: from bitstring import BitArray [as 别名]
# 或者: from bitstring.BitArray import prepend [as 别名]
def testPrepend(self):
s = BitArray("0b0")
s.prepend([1])
self.assertEqual(s, [1, 0])
示例9: encode
# 需要导入模块: from bitstring import BitArray [as 别名]
# 或者: from bitstring.BitArray import prepend [as 别名]
def encode(self, frame):
frame = BitArray( "0b"+ re.sub("(" + self.pattern + ")", self.bitStuffedPattern, frame.bin))
frame.append(self.flag)
frame.prepend(self.flag)
return frame