【Python】十进制->二进制
时间:2010-10-14 来源:K#
十进制转换成二进制是计算机基本功。
网上有很多教程,一步一步地介绍得很详细。
但是真正用代码来实现的,没见到几个,其实不难。
def float2binary(x):
def convertInteger(x):
if x/2==0:
return str(x%2)
else:
return convertInteger(x/2)+str(x%2)
def convertFraction(x):
if x*2<0.000001:
return "0"
if x*2<1:
return "0"+convertFraction(x*2)
else:
return "1"+convertFraction(x*2-1)
assert x>=0
y = int(x)
return convertInteger(y)+"."+convertFraction(x-y)
算法包括3部分:
1.转换整数部分(4行)
2.转换小数部分(6行)
3.把它们拼起来(3行)
总共也就十几行!
如果要笔算,请参考:http://www.cnblogs.com/lds85930/archive/2007/09/19/897912.html
提示:不要对递归产生恐惧心理,递归很有用!
相关阅读 更多 +