byte 跟 short的转换??
此算法把2个short(其实用12bit就可以表示大小了)
变成 3个byte(按照次序)
__——— __—--
index[0] index[1]
即把上面一行的数据 顺序读入到 3个byte里
把划底线的那两个4位去掉
放到文件;然后从文件读出,再恢复成2个short;
这是一个调试的小程序, 百思不得其解,不知道错在哪》
谢谢!!
try{
byte buf[]=new byte[3];
buf[1]=(byte)(index[0]<<4);//index 是一个短整形数组
buf[0]=(byte)(index[0]>>4);
buf[2]=(byte)index[1];
buf[1]+=(byte)(index[1]>>8);
out.write(buf,0,3);
System.out.print(index[0]+"\t"+index[1]+"\t");
//output the decoding ,just for dubugging
short codebuf[]=new short[2];
//把3 byte的数据 恢复成2个short
codebuf[0]=(short)(buf[0]<<4);
codebuf[0]+=(short)(buf[1]>>4);
codebuf[1]=(short)buf[2];
codebuf[1]=(byte)(buf[1]<<4);
codebuf[1]+=(short)(buf[1]<<4);
System.out.println("\t"+codebuf[0]+"\t"+codebuf[1]);