# JavaStructMimicker **Repository Path**: vigiles/java-struct-mimicker ## Basic Information - **Project Name**: JavaStructMimicker - **Description**: 模拟python的struct库 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-11-18 - **Last Updated**: 2022-06-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, struct ## README # java数据打包 www.gaohaiyan.com
简单的模拟,不是功能的相同实现。
这里简单的将数据统一转为字符串,再转16进制
* python的struct库设定: * * 字符串:按照普通字符串操作,使用中,有多少字符就用多少‘s’占位 * str = "ABC".encode('utf-8') * 占位规则: * str_paceholder = "3s" # 长度3,可以使用‘3s’占位,也可以使用‘sss’占位。 * * 字符: * char = "D" # 只有一个字符,同C语言的char。根据开发需求,须要占1位使用‘c’;否则如上按普通字符串操作。 * 占位规则: * char_paceholder = "c" * char_paceholder = "1s" * * 整型: * int = 99 # python中只有int一个类型。而对于C语言中short、int、long有不同长度。根据开发需求占几位,使用不同的占位符 * 占位规则: * int_paceholder = "h" # 对应C中的short,占2位 * int_paceholder = "H" # 对应C中的无符号short,占2位 * int_paceholder = "i" # 对应C中的int,占4位 * int_paceholder = "I" # 对应C中的无符号int,占4位 * int_paceholder = "l" # 对应C中的long,占4位 * int_paceholder = "L" # 对应C中的无符号long,占4位 * int_paceholder = "q" # 对应C中的long long,占8位 * int_paceholder = "Q" # 对应C中的无符号long long,占8位 * * 浮点型: * float = 9.9 # python中只有float一个浮点型 * 占位规则: * float_paceholder = "f" # 对应C中的float,占4位 * float_paceholder = "D" # 对应C中的double,占8位 * * 示例需求:长度为3的字符串+占2位的数字+占4位的浮点数字 * fmt="3sHf" # 封装规则。目标数据是 ABC 99 9.9 ,按顺序排列占位符