"如何把十进制数(long型)分别以二进制和十六进制形式输出"(python)

分析与解答: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))

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值