在tcp/ip协议中以BigEndian方式的编码与解码
来源:互联网 发布:刷屏软件 编辑:程序博客网 时间:2024/06/05 04:39
package com.tcpip;/** * 在tcp/ip协议中以BigEndian方式的编码与解码 * @author * */public class BruteForceCoding {private static byte byteVal = 101;private static short shortVal = 10001;private static int intVal = 100000001;private static long longVal = 1000000000001L;private final static int BSIZE = Byte.SIZE;private final static int SSIZE = Short.SIZE;private final static int ISIZE = Integer.SIZE;private final static int LSIZE = Long.SIZE;private final static int BYTEMASK = 0xFF;public static String byteArrayToDecimalString(byte[] bArray){StringBuilder rtn = new StringBuilder();for(byte b:bArray){rtn.append(b&BYTEMASK).append(" ");}return rtn.toString();}/** * 对val进行编码 * @param dst 源字节数组 * @param val 需要编码的long值 * @param offset 编码起始的偏移量 * @param size编码的位数 * @return */public static int encodeIntBigEndian(byte[] dst,long val,int offset,int size){for(int i=0;i<size;i++){dst[offset++] = (byte)(val >> ((size-i-1)*Byte.SIZE));}return offset;}/** * 对字节数组val进行解码 * @param val 源字节数组 * @param offset 解码起始的偏移量 * @param size 解码的位数 * @return */public static long decodeIntBigEndian(byte[] val,int offset,int size){long rtn = 0;for(int i=0;i<size;i++){rtn = (rtn<<Byte.SIZE) | ((long)val[offset+i] & BYTEMASK);}return rtn;}public static void main(String args[]){byte[] message= new byte[BSIZE];int r = encodeIntBigEndian(message,1999999999,0,BSIZE);System.out.println(r);long rl = decodeIntBigEndian(message,0,BSIZE);System.out.println(rl);}}
1 0
- 在tcp/ip协议中以BigEndian方式的编码与解码
- 在 Windows中加固TCP/IP协议栈以抵御拒绝服务的攻击
- 在Windows中加固TCP/IP协议栈以抵御拒绝服务的攻击[ZT]
- 在C#中实现BigEndian的数字
- TCP/IP协议族中tcp与udp的区别
- java中以post方式提交,中文编码&解码问题
- GET方式的中文编码与解码
- TCP与IP协议
- TCP/IP协议与UDP/IP协议的区别
- TCP/IP协议与UDP/IP协议的区别
- TCP/IP协议与socket的关系
- 与TCP/IP协议的初次见面(一)
- TCP与IP协议的相互作用
- TCP/IP协议与UDP的区别
- Tcp/Ip协议中tcp与http详解
- TCP/IP 中相关协议的 RFC
- 计算机网络中TCP、IP协议的对比
- Linux TCP/IP协议栈的通用编码模式
- two or more data types in declaration of `main'
- Java 字节码之解析一
- MySQL 当记录不存在时插入,当记录存在时更新
- Android中使用Handler造成内存泄露的分析和解决
- C# WinForm开发 DataGridView控件的各种操作总结
- 在tcp/ip协议中以BigEndian方式的编码与解码
- 第二天 用户、组和权限
- HTML5实现图片文件异步上传
- php简单实现基本库件的调用和配置信息的读取
- 文件上传 解压 复制
- sencha touch 的Ext.menu组件学习
- 查询不到已经创建过的事件会话(扩展事件)
- iOS开发- OpenGL ES屏幕截图
- undefined reference to `vtable for Ichange'