32位大小端转换

部署运行你感兴趣的模型镜像
import struct

#32位bin大小端转换脚本

def swap_endian_32bit(value: int) -> int:
    """
    交换 32 位整数的大小端格式
    :param value: 32 位整数
    :return: 交换大小端后的整数
    """
    return struct.unpack("<I", struct.pack(">I", value))[0]

def process_file(input_filename: str, output_filename: str):
    """
    读取文件中的 32 位整数并转换大小端,并输出到新的文件
    :param input_filename: 输入文件名
    :param output_filename: 输出文件名
    """
    with open(input_filename, "rb") as f:
        data = f.read()

        # 计算有效长度(4 的倍数)
        valid_length = len(data) - (len(data) % 4)
        if valid_length != len(data):
            print(f"警告: 文件大小 {len(data)} 不是 4 的倍数,截断为 {valid_length} 字节")

        # 仅解析有效部分
        values = struct.unpack(f"{valid_length // 4}I", data[:valid_length])
        swapped_values = [swap_endian_32bit(v) for v in values]

        with open(output_filename, "wb") as out_f:
            out_f.write(struct.pack(f"{len(swapped_values)}I", *swapped_values))

        print(f"转换完成,结果已保存到 {output_filename}")

if __name__ == "__main__":
    import sys
    if len(sys.argv) != 3:
        print("用法: python script.py <输入文件> <输出文件>")
        sys.exit(1)

    process_file(sys.argv[1], sys.argv[2])

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值