python如何将整数转化成二进制字符串

如题所述

直接上代码:

#coding=gbk
def intTo2Str( X , K ):
    """ intTo2Str( X , K )
        将整数 X 转化为 K位2进制字符串
    """
    try:
      X = long( X)
    except:
      X = 0
    try:
      K = int( K)
    except:
      K = 0
    if K<1 :
       K = 1 
    if X<0 :
       FH = 1 ; X = -X
    else:
       FH = 0 
    A =[ 0 for J in xrange( 0, K ) ]
    J = K-1
    while (J>=0) and ( X>0):
          Y = X % 2
          X = X / 2
          A[ J ] = Y
          J = J - 1   
    if FH==1:
       # 求反
       for J in xrange( 0, K):
           if A[J] ==1 :
              A[J] = 0
           else:
              A[J] = 1
       # 末位加1
       J = K - 1
       while J>=0:
             A[J] = A[J] +1
             if A[J]<=1:
                break;
             A[J] = 0
             J = J -1
    return "".join([ chr(J+48) for J in A ])

print intTo2Str( 8, 8 )   # 应显示 00001000
print intTo2Str( -1, 8 )   # 应显示 10000000

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-08

>>> num = 1396940819.29708
>>> bin(int(num))
'0b1010011010000111010000000010011'
>>>

第2个回答  2018-03-31

[python] view plain copy

    last_mask_str = '11110000'  

    last_mask_str = str(int(last_mask_str, 2))  

    print last_mask_str  

    #240  

    print bin(int(last_mask_str))  

    #0b11110000 

本回答被网友采纳
第3个回答  2015-11-01
首先你可以自己写函数采用%2的方式来算.
但是python自带了方法 bin.
比如bin(12345)回返回字符串'0b11000000111001' 这个时候在把0b去掉即可.

bin(number).replace('0b','')
第4个回答  2018-06-25
'{0:b}'.format(128) # python 3.x 以上
相似回答