首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

java android eclipse 定义长度存储二进制数组,不满前端补零 getbyte

2013-03-10 
java android eclipse 定义长度储存二进制数组,不满前端补零 getbyte有这样一个定义一串二进制数组:长度为

java android eclipse 定义长度储存二进制数组,不满前端补零 getbyte
有这样一个定义一串二进制数组:长度为40bit,其中用户地址长度为8bit,用户地址为为24bit。如果用户地址的数据不满24bit,则前端补零。用户地址为在客户端输入的为为于7位的十进制数据。也就是说:这个小于七位的十进制数,getbyte()转换成二进制刚好是小于24bit的数据,用户地址长度储存有效的二进制数据长度,用户地址长度和用户地址不满位前端补零,输出为一个40bit的二进制数组;怎么对这样的逻辑进行代码整理。思路是什么?不知道我讲明白了没,请大侠们指点·····



int len = 15;
int address = 145784;

byte[] result = new byte[5];

// 当int强转为byte时会截短保留低八位

// 填充长度
result[0] = (byte) (len >> 8);
result[1] = (byte) len;

// 填充用户地址
result[2] = (byte) (address >> 16);
result[3] = (byte) (address >> 8);
result[4] = (byte) (address);

// 还原
// & 0xff 将高位置 0
int len1 = ((result[0] & 0xff) << 8) + (result[1] & 0xff);
int address1 = (((result[2] & 0xff) << 16) + ((result[3] & 0xff) << 8) + ((result[4] & 0xff)));

System.out.println(len1);
System.out.println(address1);

热点排行