也許很多人會用不上,但一旦要操作二進制,是很有用的 之所以稱為函數,是因為無論你用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
|