将十进制数转化为二进制数

注:bin(数字) 可以把数字转化为2进制

>>> bin(50)
'0b110010'

(0b不用管)

我的方法:

 def ct2(a):
int(a)
s=''
while(a//2!=0):
haha=a%2
s=s+str(haha)
a=a//2
s=s+str(a%2)
tmp=len(s)-1
ss=''
while(tmp>=0):
ss=ss+s[tmp]
tmp=tmp-1
return ss


测试:

>>> ct2(5)

'101'

>>> bin(5)

'0b101'


>>> bin(100)
'0b1100100'

>>> ct2(100)
'1100100'


>>> bin(1211)
'0b10010111011'
>>> ct2(1211)
'10010111011'


改进后的方法:

>>> def c2(a):
s=[]
while a:
j=a%2
a=a//2
s.append(j)
ss=''
while s:
ss=ss+str(s.pop())
return ss

测试:
>>> c2(50)
'110010'
>>> bin(50)
'0b110010'
>>> c2(100)
'1100100'
>>> bin(100)
'0b1100100'


我的问题

1不会很好的运用while

2.没有想要运用列表.append() 和 pop()

3我不会用bin() 这个方法....

转载于:https://www.cnblogs.com/iamjuruo/p/7470906.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值