我的做法,,这个题在于必须补0
def reverseBits(n):
num=32-len(bin(n)[2:])
m = bin(n)[2:][::-1]
if num > 0:
for i in range(num):
m=m+'0'
print(m,int(m,2))
return m
看到前几做法
nums=bin(n) nums=nums.lstrip('0b') nums=nums.zfill(32) #zfill 一直没找到。。。。原来是这个 nums=nums[::-1] return int(nums,2)
zfill()用法:
描述
Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。
语法
zfill()方法语法:
str.zfill(width)
摘自:http://www.runoob.com/python/att-string-zfill.html
另一种,目前第一的做法
1 binNum = bin(n) 2 binStr = str(binNum) 3 binStr = binStr[2:] 4 #rjust..对应应该有ljust# 5 reverseStr = binStr.rjust(32, '0') 6 reverseStr = reverseStr[::-1] 7 8 reverseNum = int(reverseStr, 2) 9 return reverseNum
描述
rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。
语法
rjust()方法语法:
str.rjust(width[, fillchar])
参数
- width -- 指定填充指定字符后中字符串的总长度.
- fillchar -- 填充的字符,默认为空格。
摘自:http://www.runoob.com/python3/python3-string-rjust.html