Python进制转化
2018-01-10 18:10
274 查看
看来不管是我写成了几行,别人总是能一行出结果~~
给定一个正整数,输出它的补码数。 补充策略是翻转其二进制表示的位。
注意:
给定的整数保证适合在32位有符号整数的范围内。
您可以在整数的二进制表示中不要假定前导零位。
我的
别人的
Python的列表对象是这个语言提供的最通用的序列。列表是一个任意类型的对象的位置相关的有序集合,他没有固定的大小。不像字符串,其大小是可变的,通过对偏移量进行复制以及其他各种列表的方法进行调用,确实能够修改列表的大小。
给定一个正整数,输出它的补码数。 补充策略是翻转其二进制表示的位。
注意:
给定的整数保证适合在32位有符号整数的范围内。
您可以在整数的二进制表示中不要假定前导零位。
Input: 5 Output: 2 Explanation: The binary representation of 5 is 101 (no leading zero bits), and its complement is 010. So you need to output 2.
我的
class Solution: # 十进制转化成二进制 def dec2bin(num): l=[] # 负数时进行递归 if num < 0: return '-' + dec2bin(abs(num)) # abs(num) abs()、int()等等进行类型的转化 while True: # divmod() 函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b) num, remainder = divmod(num, 2) #如果是10进制转化成其他进制,将2换成相应数字即可 l.append(str(remainder)) if num == 0: print( ''.join(l[::-1])) # .join将单个的字符连成字符串 return ''.join(l[::-1]) def findComplement(self, num): """ :type num: int :rtype: int """ l2=[] bin_num=Solution.dec2bin(num) # 按位取反 for i in range(len(bin_num)): if(bin_num[i]=='0'): l2.append(str(1)) else : l2.append(str(0)) l2=''.join(l2[::1]) print(l2) # 转化成十进制 # int()第一个参数是字符串 '0Xff' ,第二个参数是说明,这个字符串是几进制的数。 转化的结果是一个十进制数。 return int(l2,2) a=5 b=Solution.findComplement(a,a) print(b)
别人的
def findComplement(self, num): return num ^ ((1 << len(bin(num)) - 2) - 1)列表: []
Python的列表对象是这个语言提供的最通用的序列。列表是一个任意类型的对象的位置相关的有序集合,他没有固定的大小。不像字符串,其大小是可变的,通过对偏移量进行复制以及其他各种列表的方法进行调用,确实能够修改列表的大小。
相关文章推荐
- python读取二进制文件以及二进制、十进制、16进制间的转化
- python学习之 进制转化
- 小数进制转化 @ Python
- python学习之 进制转化
- python数据结构 栈的应用——符号匹配,进制转化,后缀。
- python学习之 进制转化
- python进制转化
- python学习之 进制转化
- python学习之 进制转化
- python学习之 进制转化
- python学习之 进制转化
- python学习之 进制转化
- python学习之 进制转化
- python学习之 进制转化
- python3 第十章 - 如何进行进制转化
- python学习之 进制转化
- python学习之 进制转化
- python学习之 进制转化
- python学习之 进制转化
- python读取dat文件时遇到16进制转化成10进制问题