Python,将一个十进制的数,转换成2进制数,判断其最高位是0,还是1

Python,将一个十进制的数,转换成2进制数,判断其最高位是0,还是1

问题描述:

Python,将一个十进制的数,例如:13785,
转换成16位2进制数:0011 0101 1101 1001,
判断其最高位是0,还是1,用代码表示。

python中有自带的bin函数,可以将十进制的数字转化为二进制


num = 13785
# num = int( input("请输入要将十进制转化为二进制的正整数: ")  )
print( bin(num) )
temp = bin(num).replace('0b','')

##判断是否是4位一个,如果不是将在前面补 0
if len(temp) % 4:
    print(4 - len(temp) % 4)
    res = '0' * (4 - len(temp) % 4) + temp
else:
    res = temp

print('{} 转化为二进制的结果为 {}'.format( str(num) , res ))
if int( res[0] ):
    print('转化二进制后最高位是 1')
else:
    print('转化二进制后最高位是 0')


转成二进制总有个转成几位数的二进制吧,不够的要补0?不然除了0之外,最前面的都是1,但是对于计算机内存中的二进制来说,最高位为1代表着负数

aa=bin(13785) #转换为二进制的字会串 结果为0b11010111011001
print(aa[2]) #打印第三个数字就是了