将十六进制转换为二进制,反之亦然,但将其保留为整数

时间:2018-10-27 09:05:22

标签: python string binary integer hex

我知道如何使用bin函数将十六进制整数转换为二进制字符串,但是有没有简单的方法将十六进制整数转换为二进制 integer

换句话说,是否有一种简单的方法可以将二进制整数("0b111")的字符串表示形式转换为表示二进制整数(0b111)的整数

使用bin()生成十六进制字符串

>>> bin(0x7)
'0b111'
>>> type(bin(0x7))
<class 'str'>

但是我想要实现的是:

>>> magic(0x7)
0b111
>>> type(magic(0x7))
<class 'int'>

(魔术函数只是一个占位符,从本质上讲,我想要一种将二进制整数的字符串表示形式转换为二进制整数的方法)

  • 问题1:是否可以(如果可以)?
  • 问题2:这样做有意义吗?使用十六进制和二进制数字的字符串表示形式或整数表示形式更好吗?

1 个答案:

答案 0 :(得分:1)

您所说的“十六进制整数”和“二进制整数”之间没有区别-它们都是整数:

Collection<String> a = new ArrayList<String>();

a.add("Hello");
a.add("World");

System.out.println(((ArrayList<String>)a).get(0));

前缀>>> 0x07 7 >>> 0b111 7 >>> type(0x07) <type 'int'> >>> type(0b111) <type 'int'> >>> 0x07 == 0b111 True >>> 0x07 is 0b111 # This is true in the special case of small integers True 0x只是告诉您解释器如何读取您提供的输入的一种方式。

要将整数的二进制字符串表示形式转换为实际整数,可以使用0b

int(string, base)