# 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 ,按顺序排列占位符