python十進制轉二進制,可指定位數

pykde 9年前發布 | 3K 次閱讀 Python

python十進制轉二進制,可指定位數

# convert a decimal (denary, base 10) integer to a binary string (base 2)

tested with Python24 vegaseat 6/1/2005

def Denary2Binary(n): '''convert denary integer n to binary string bStr''' bStr = '' if n < 0: raise ValueError, "must be a positive integer" if n == 0: return '0' while n > 0: bStr = str(n % 2) + bStr n = n >> 1 return bStr

def int2bin(n, count=24): """returns the binary of integer n, using count number of digits""" return "".join([str((n >> y) & 1) for y in range(count-1, -1, -1)])

this test runs when used as a standalone program, but not as an imported module

let's say you save this module as den2bin.py and use it in another program

when you import den2bin the name namespace would now be den2bin and the

test would be ignored

if name == 'main': print Denary2Binary(255) # 11111111

# convert back to test it
print int(Denary2Binary(255), 2)  # 255

print

# this version formats the binary
print int2bin(255, 12)  # 000011111111
# test it
print int("000011111111", 2)  # 255

print

# check the exceptions
print Denary2Binary(0)
print Denary2Binary(-5)  # should give a ValueError</pre> 


 本文由用戶 pykde 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!