当前位置: 首页> 财经> 金融 > Python大小端Hex_Int转换

Python大小端Hex_Int转换

时间:2025/7/13 11:40:39来源:https://blog.csdn.net/Bing_Lee/article/details/141138642 浏览次数:0次

Python大小端Hex_Int转换

文章目录

  • 前言
  • 正文
    • 函数说明
    • 常用转换

前言

在计算机中,字节序是指字节存储的顺序。大端字节序(Big Endian)是指将高位字节存储在起始地址,而小端字节序(Little Endian)则是将低位字节存储在起始地址。在Python中,我们可以使用一些简单的方法来进行16进制的大小端转换。

本文提供几种方法,组合后可实现hex int bytes等相互转换,其中涉及

  • bin()将一个整数转换为带前缀 “0b” 的二进制数字符串

  • hex()将整数转换为带前缀 “0x” 前缀的小写十六进制数字符串

  • oct()将整数转换为带前缀 “0o” 的八进制数字符串

  • bytes.fromhex()此 bytes 类方法返回一个解码给定字符串的 bytes 对象

  • float.fromhex()返回以十六进制字符串 s 表示的浮点数的类方法

  • int.from_bytes()返回由给定字节数组所表示的整数。

  • int.to_bytes()返回表示一个整数的字节数组。

正文

函数说明

  1. bin()

如果 x 不是一个 Python int 对象,则它必须定义返回一个整数的 index() 方法。 下面是一些例子:

bin(3)
'0b11'
bin(-10)
'-0b1010'

若要控制是否显示前缀“0b”,可以采用以下两种方案:

format(14, '#b'), format(14, 'b')
('0b1110', '1110')
f'{14:#b}', f'{14:b}'
('0b1110', '1110')
  1. hex()

如果 x 不是一个 Python int / float 对象,则它必须定义返回一个整数 / 浮点数的 index() 方法。 下面是一些例子:

hex(255) #必须是int
'0xff'
hex(-42) #必须是int
'-0x2a'
float(3.14).hex()
'0x1.91eb851eb851fp+1'
float(-9.8).hex()
'-0x1.399999999999ap+3'

如果要将整数 / 浮点数转换为大写或小写的十六进制字符串,并可选择有无“0x”前缀,则可以使用如下方法:

'%#x' % 255, '%x' % 255, '%X' % 255
('0xff', 'ff', 'FF')
format(255, '#x'), format(255, 'x'), format(255, 'X')
('0xff', 'ff', 'FF')
f'{255:#x}', f'{255:x}', f'{255:X}'
('0xff', 'ff', 'FF')
  1. int.from_bytes()

classmethod int.from_bytes(bytes, byteorder='big', *, signed=False)

返回由给定字节数组所表示的整数。

int.from_bytes(b'\x00\x10', byteorder='big')
16
int.from_bytes(b'\x00\x10', byteorder='little')
4096
int.from_bytes(b'\xfc\x00', byteorder='big', signed=True)
-1024
int.from_bytes(b'\xfc\x00', byteorder='big', signed=False)
64512
int.from_bytes([255, 0, 0], byteorder='big')
16711680

常用转换

def hex_to_int(value_str: str, byteorder='little') -> int:return int.from_bytes(bytes.fromhex(value_str), byteorder=byteorder, signed=True)def int_to_hex(value_int: int, length: int, byteorder='little') -> str:return int(value_int).to_bytes(length, byteorder).hex().upper()int_to_hex(10000, 4)
'10270000'hex_to_int("10270000")
10000
关键字:Python大小端Hex_Int转换

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: