分析与解答:Python的左移N位代表乘以2的N次方,右移代表除以2的N次方。因此先将数值右移i位,得到除以2的i次方(整除)后的数值b,如10除以2的0次方,得到b=10;再取b整除2后的余数0, 既二进制的最后一位,依次类推,得到10转换2进制的结果1010;二进制的位数有64位,以位数为上限,对输入10进制的数字进行循环转换操作,当循环达64次时候停止。
def intToBinary(n):
hexNum = 8 * 8 # 二进制的位数(long占8个字节)
bit = []
for i in range(hexNum):
b = n >> i
c, d = divmod(b, 2)
bit.append(str(d))
return "".join(bit[::-1])
def intToHex(s):
hexs = ""
remainder = 0
while s != 0:
remainder = s % 16
if remainder < 10:
hexs = str(remainder+int('0')) + hexs
else:
hexs = str(remainder - 10 + ord('A')) + hexs
s = s >> 4
return chr(int(hexs))
if __name__ == "__main__":
print("10的二进制输出为:"+intToBinary(10))
print("10的十六进制输出为:"+intToHex(10))
版权声明:本文为qq_42013574原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。