也许很多人会用不上,但一旦要操作二进制,是很有用的 之所以称为函数,是因为无论你用C还是用Java写,都只能将它们写成函数,尽管在Java中不叫函数
//Java Version
/** * BCD码左对齐转字符串 * @param bcd 你一次读进的字节数,因为可能会大于你要处理的字节数 * @param begin 字节开始位置 * @param length 字节长,与begin一起决定真正要处理的字节数 */ public static String BCD2Str(byte[] bcd,int begin,int length) { String str = ""; int temp; for(int i=begin;i<begin+length;i++) { if(bcd[i]==0) break; temp=(bcd[i] & 0x0F) % 10; str+=temp; temp=(bcd[i]>>>4) % 10;// notice >>> if(bcd[i]>>>4 !=0)str+=temp; } return str; }
/** * 普通的二进制转字串 * @param 同BCD码 */ public static String Hex2Str(byte[] hex,int begin,int num) { String overflow="overflow"; long ll=0; if(num>8) return overflow; for(int i=begin;i<begin+num;i++) ll=ll*256+ hex[i];
return String.valueOf(ll); }
//C version 因为用到第3方库,贴无益,免,算法同Java Version
|