如何在 Python 中将一串位转换为十六进制字符串?

发布于 2024-10-19 03:39:04 字数 171 浏览 1 评论 0原文

我有一个 32 个字符的位串,我需要在 Python 中将其表示为十六进制。例如,字符串 "10000011101000011010100010010111" 还需要输出为 "83A1A897"

关于如何在 Python 中最好地解决这个问题,有什么建议吗?

I have a bit-string of 32 characters that I need to represent as hexadecimal in Python. For example, the string "10000011101000011010100010010111" needs to also be output as "83A1A897".

Any suggestions on how to best go about this in Python?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

烟火散人牵绊 2024-10-26 03:39:04

要格式化为十六进制,您可以使用 hex 函数:

>>> hex(int('10000011101000011010100010010111', 2))
0x83a1a897

或者将其完全转换为您请求的格式:

>>> '%08X' % int('10000011101000011010100010010111', 2)
83A1A897

To format to hexadecimal you can use the hex function:

>>> hex(int('10000011101000011010100010010111', 2))
0x83a1a897

Or to get it in exactly the format you requested:

>>> '%08X' % int('10000011101000011010100010010111', 2)
83A1A897
葮薆情 2024-10-26 03:39:04
>>> binary = '10010111'
>>> int(binary,2)
151
>>> hex(int(binary,2))
'0x97'

我希望这有帮助!

>>> binary = '10010111'
>>> int(binary,2)
151
>>> hex(int(binary,2))
'0x97'

I hope this helps!

赠佳期 2024-10-26 03:39:04

您可以通过内置函数轻松完成此操作。
您要做的第一件事是将二进制转换为整数:

>> int("1010",2)
10

第二步是将其表示为十六进制:

>> "%04X" % int("1010",2)
'000A'

如果您不需要十六进制字符串的任何预定义长度,则只需使用:

>> "%X" % int("1010",2)
'A'
>> "0x%X" % int("1010",2)
'0xA'

You can do this very easy with build in functions.
The first thing you want to do is convert your binary to an integer:

>> int("1010",2)
10

The second step then would be to represent this as hex:

>> "%04X" % int("1010",2)
'000A'

in case you don't want any predefined length of the hex string then just use:

>> "%X" % int("1010",2)
'A'
>> "0x%X" % int("1010",2)
'0xA'
春花秋月 2024-10-26 03:39:04

要读入任何基数的数字,请使用内置 int 函数以及指定基数的可选第二个参数(在本例中为 2)。

要将数字转换为十六进制形式的字符串,只需使用 hex 函数。

>>> number=int("10000011101000011010100010010111",2)
>>> print hex(number)
0x83a1a897L

To read in a number in any base use the builtin int function with the optional second parameter specifying the base (in this case 2).

To convert a number to a string of its hexadecimal form just use the hex function.

>>> number=int("10000011101000011010100010010111",2)
>>> print hex(number)
0x83a1a897L
煮酒 2024-10-26 03:39:04

好吧,我们可以像 Mark Byers 所说的那样进行字符串格式。或者以其他方式,我们可以用另一种方法进行字符串格式,如下所示:

>>> print('{0:x}'.format(0b10000011101000011010100010010111))
83a1a897

要使十六进制之间的字母表为大写,请尝试以下操作:

>>> print('{0:X}'.format(0b10000011101000011010100010010111))
83A1A897

希望这会有所帮助。

Well we could string format just like Mark Byers said.Or in other way we could string format in another method like given below:

>>> print('{0:x}'.format(0b10000011101000011010100010010111))
83a1a897

To make the alphabets between the hex in upper case try this:

>>> print('{0:X}'.format(0b10000011101000011010100010010111))
83A1A897

Hope this is helpful.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文