Python 16 进制格式化

以下操作得到的都是字符串:


有十六进制数 0xABC,但是想凑够 4 位,想在前面添个 0 该怎么半?

str = "{:04X}".format(0xABC)
得到输出:0ABC

要是输入是字符串 'ABC'呢?

str = "{:04X}".format(int('ABC', 16))
得到输出:0ABC

怎么把十六进制字符串 ABC转化长度为 16 的二进制字符串呢,并且不够的用 0 进行补位?

str = "{:016b}".format(int('ABC', 16))
得到输出:0000101010111100

知识点:

  • :#0:表示位数不够用 0 进行补位,有 # 表示带前缀 0x 输出。 : 前的数表示用后面的第几个数,: 后的数表示如何进行格式化。
  • 6:表示格式化后的总长度为 6 位
  • X:表示转化为 16 进制,小写大写都可以
  • int('ABC', 16):将 16 进制数 ABC 转换成 10 进制
  • [2:]:表示只取格式化后的字符串第 2 个及后面的。因为默认得到的格式化字符串为 0x0ABC,前面带了 0x,使我们不需要的,所以就切掉。

问:{0}{1} 表示什么含义?

sf = "You clicked on {0}x{1}".format(item.column(), item.row())
print(sf)

答:{0} 表示取后面的第 0 个元素,然后替换 {0}


问:{0:d} 什么含义?

sf = "{0:d}".format(2)
print(sf)

答:取第 0 个元素,十进制输出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值