全部博文(2065)
分类: Python/Ruby
2010-03-24 17:55:21
python中实现字符串位运算
需求:
a="1001"
b="1101"
运算出来之后为:1101
解决办法:
results = int(a,2)|int(b,2)
编写一个函数:十进制转二进制
def Denary2Binary(n):
bStr = ''
if n < 0: raise ValueError, "must
be a positive integer"
if n == 0: return '0'
while n > 0:
bStr = str(n % 2) + bStr
n = n >> 1
return bStr
结果:print
Denary2Binary(results) #1101
其实保存的是PyIntObject对象的!
chinaunix网友2010-06-06 22:46:16
# import os # import sys # # #2进制 to 10进制 # def binary2decimal(binary = "0001"): # ''''' # 根据栈后进先出的特性,我们使用栈完成2 to 10 的 转换 # 算法: # 公式: Xn,Xn-1,.....X1,X0 = X0 * 2 ** 0,X1 * 2**1,.......Xn-1 * 2 ** n-1.Xn *2 ** n # 1)将栈有大到小压入栈。 # 2)逐个出栈,* 2 ** i ,这里i为出栈元素的个数,并将数据累加。 # 3) 打印出结果。 # ''' # bs = binary # #定义Stack # stack = [] # sum = 0 # #初始化栈 # for i in xrange(len(bs)): #
chinaunix网友2010-03-24 18:15:47
补充: 如果权限是动态读取数据库的方式的话: rlt = 0x0000 #定义一个基准值 results = ((u'1010',), (u'1101',)) result = '' for ele in results: rlt = rlt | int(ele[0],2) print Denary2Binary(rlt) 参考学习:ZendFramework ACL