当前位置: 首页>>代码示例>>Python>>正文


Python BitArray.prepend方法代码示例

本文整理汇总了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
开发者ID:Xodarap,项目名称:Academic,代码行数:29,代码来源:booth.py

示例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')
开发者ID:AtulKumar2,项目名称:gecko-dev,代码行数:9,代码来源:test_bitarray.py

示例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
开发者ID:dhda,项目名称:Experiments,代码行数:36,代码来源:huffman.py

示例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]
开发者ID:dettonijr,项目名称:simple-keccak,代码行数:16,代码来源:StateArray.py

示例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]
开发者ID:akfarhat,项目名称:py-sha3,代码行数:17,代码来源:keccak.py

示例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()
开发者ID:iamckn-sdr,项目名称:darc,代码行数:40,代码来源:darc_syndrome_generator.py

示例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)
开发者ID:kavi,项目名称:PngEncrypt,代码行数:39,代码来源:encrypt.py

示例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])
开发者ID:juanrmn,项目名称:Arduino-Telescope-Control,代码行数:6,代码来源:test_bitarray.py

示例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
开发者ID:mgt1g13,项目名称:TrabComDados,代码行数:7,代码来源:flagger.py


注:本文中的bitstring.BitArray.prepend方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。