|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 白无痕 于 2018-8-14 21:04 编辑
动动手里面最后一题十进制转换二进制,我做出来的跟答案不一样,但是感觉效果都是一样的,请教一下大神我的这个代码会不会有什么不够好的地方,跟答案相比
------------经过大神们的提醒修改了一下代码------------
- def nbin(x):
- z = 0
- t = 0
- while x != 0:
- y = x % 2
- x //= 2
- t = t + y*(10**z)
- z += 1
- return t
- print(nbin(789))
复制代码
主要是想知道,我这样做有没有毛病,
课后作业答案是这样的:
- def Dec2Bin(dec):
- temp = []
- result = ''
-
- while dec:
- quo = dec % 2
- dec = dec // 2
- temp.append(quo)
- while temp:
- result += str(temp.pop())
-
- return result
- print(Dec2Bin(62))
复制代码
如果你想简化一下,可以尝试
- def nbin(x):
- z = []
- while x != 0:
- y = x % 2
- x //= 2
- z.append(y)
- z.reverse()
- s = int(''.join(map(str,z)))
- return s
复制代码
但是思想是一样的,需要有一个反向拼接。
假设数字为 8 ,经过运算后是 0 0 0 1 ,但二进制是 1 0 0 0
|
|