Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29338537
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: 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对象的!

阅读(994) | 评论(2) | 转发(0) |
0

上一篇:Java中的单例模式

下一篇:python中类型转换

给主人留下些什么吧!~~

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