彩世界平台-彩世界时时app-彩世界开奖app苹果下载

热门关键词: 彩世界平台,彩世界时时app,彩世界开奖app苹果下载

您的位置:彩世界平台 > 彩世界平台 > java模拟PHP的pack和unpack类_php技巧_脚本之家

java模拟PHP的pack和unpack类_php技巧_脚本之家

发布时间:2019-11-23 07:42编辑:彩世界平台浏览(63)

    format 参数的可能值: a - NUL-padded string A - SPACE-padded string h - Hex string, low nibble first H - Hex string, high nibble first c - signed char C - unsigned char s - signed short (always 16 bit, machine byte order) S - unsigned short (always 16 bit, machine byte order) n - unsigned short (always 16 bit, big endian byte order) v - unsigned short (always 16 bit, little endian byte order) i - signed integer (machine dependent size and byte order) I - unsigned integer (machine dependent size and byte order) l - signed long (always 32 bit, machine byte order) L - unsigned long (always 32 bit, machine byte order) N - unsigned long (always 32 bit, big endian byte order) V - unsigned long (always 32 bit, little endian byte order) f - float (machine dependent size and representation) d - double (machine dependent size and representation) x

    本文实例为大家分享了java模拟PHP的pack和unpack类的具体代码,供大家参考,具体内容如下

    • NUL byte X - Back up one byte @ - NUL-fill to absolute position a一个填充空的字节串 A一个填充空格的字节串 b一个位串,在每个字节里位的顺序都是升序 B一个位串,在每个字节里位的顺序都是降序 c一个有符号char值 C一个无符号char值;关于Unicode参阅U d本机格式的双精度浮点数 f本机格式的单精度浮点数 h一个十六进制串,低四位在前 H一个十六进制串,高四位在前 i一个有符号整数值,本机格式 I一个无符号整数值,本机格式 l一个有符号长整形,总是32位 L一个无符号长整形,总是32位 n一个16位短整形,“网络”字节序 N一个32位短整形,“网络”字节序 p一个指向空结尾的字串的指针 P一个指向定长字串的指针 q一个有符号四倍值 Q一个无符号四倍值 s一个有符号短整数值,总是16位 S一个无符号短整数值,总是16位,字节序跟机器芯片有关 u一个无编码的字串 U一个Unicode字符数字 v一个“VAX”字节序的16位短整数 V一个“VAX”字节序的32位短整数 w一个BER压缩的整数 x一个空字节 X备份一个字节 Z一个空结束的字节串 规则: 1.每个字母后面都可以跟着一个数字,表示count,如果count是一个*表示剩下的所有东西。 2.如果你提供的参数比$format要求的少,pack假设缺的都是空值。如果你提供的参数比$format要求的多,那么多余的参数被忽略。
    package qghl.intp.util; import java.io.IOException;import java.io.InputStream; public class PackUtil{ /** * 打包字符串 * 类似php中pack在java中的实现 * * @param str * @return */ public static byte[] pack { int nibbleshift = 4; int position = 0; int len = str.length % 2; byte[] output = new byte[len]; for (char v : str.toCharArray v; if  { n -= '0'; } else if  { n -= ; } else if  { n -= ; } else { continue; } output[position] |= ; if  { position++; } nibbleshift =  & 7; } return output; } /** * 16进制的字符解压 类php中unpack * * @param is * @param len * @return * @throws IOException */ public static String unpack(InputStream is, int len) throws IOException { byte[] bytes = new byte[len]; is.read; return unpack; } /*** * 16进制的字符解压 类php中unpack * @param bytes * @return */ public static String unpack { StringBuilder stringBuilder = new StringBuilder; if (bytes == null || bytes.length <= 0) { return null; } for (int i = 0; i < bytes.length; i++) { int v = bytes[i] & 0xFF; String hv = Integer.toHexString < 2) { stringBuilder.append; } stringBuilder.append; } return stringBuilder.toString(); } }
    

    本文由彩世界平台发布于彩世界平台,转载请注明出处:java模拟PHP的pack和unpack类_php技巧_脚本之家

    关键词:

上一篇:没有了

下一篇:没有了