Python - 十进制到十六进制、反转字节顺序、十六进制到十进制
我已经阅读了很多关于 Stuct.pack 和 hex 等的内容。
我正在尝试将十进制转换为 2 字节的十六进制。反转十六进制位顺序,然后将其转换回十进制。
我正在尝试按照这些步骤......在 python 中
Convert the decimal value **36895** to the equivalent 2-byte hexadecimal value:
**0x901F**
Reverse the order of the 2 hexadecimal bytes:
**0x1F90**
Convert the resulting 2-byte hexadecimal value to its decimal equivalent:
**8080**
I've been reading up a lot on stuct.pack and hex and the like.
I am trying to convert a decimal to hexidecimal with 2-bytes. Reverse the hex bit order, then convert it back into decimal.
I'm trying to follow these steps...in python
Convert the decimal value **36895** to the equivalent 2-byte hexadecimal value:
**0x901F**
Reverse the order of the 2 hexadecimal bytes:
**0x1F90**
Convert the resulting 2-byte hexadecimal value to its decimal equivalent:
**8080**
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
移位以交换高/低八位:
以相反的字节顺序(<>)打包和解包无符号短(H):
将2字节小字节序转换为大字节序...
Bit shifting to swap upper/lower eight bits:
Packing and unpacking unsigned short(H) with opposite endianness(<>):
Convert 2-byte little-endian to big-endian...
请记住,“十六进制”(以 16 为基数 0-9 和 af)和“十进制”(0-9) 只是人类用来表示数字的构造。这些都是机器的部分。
python hex(int) 函数生成一个十六进制 'string' 。如果你想将其转换回十进制:
Keep in mind that 'hex'(base 16 0-9 and a-f) and 'decimal'(0-9) are just constructs for humans to represent numbers. It's all bits to the machine.
The python hex(int) function produces a hex 'string' . If you want to convert it back to decimal:
打印格式也适用于字符串。
Print formatting also works with strings.
我的方法
或者一行
或者使用 bytearray
My approach
or one line
or with bytearray
要将十进制转换为十六进制,请使用:
这将输出 255 的十六进制值。
要转换回十进制,请使用
这将输出 1F90 的十进制值。
您应该能够使用以下命令反转字节:
这将输出 1F90。希望这有帮助!
To convert from decimal to hex, use:
That will output the hex value for 255.
To convert back to decimal, use
That would output the decimal value for 1F90.
You should be able to reverse the bytes using:
and this would output 1F90. Hope this helps!