Android中類型轉換好像支持不是太好,備份下有用的類型轉換函數和工具函數.
一、類型轉換
1.byte 轉 int ( int 可以再轉成long double float )
- public static int byteToInt(byte[] data, int offset)
- {
- int result = 0;
- int n1, n2, n3, n4;
-
- n1 = data[offset + 3] & 0xFF;
- n2 = data[offset + 2] & 0xFF;
- n3 = data[offset + 1] & 0xFF;
- n4 = data[offset] & 0xFF;
-
- result = n1 << 24 | n2 << 16 | n3 << 8 | n4;
-
- return result;
- }
2. byte 轉 Hex
- public static String toHexString(byte[] b)
- {
- char HEX_DIGITS[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
- 'A', 'B', 'C', 'D', 'E', 'F' };
-
- StringBuilder sb = new StringBuilder(b.length * 2);
- for (int i = 0; i < b.length; i++)
- {
- sb.append(HEX_DIGITS[(b[i] & 0xf0) >> 4]);
- sb.append(HEX_DIGITS[b[i] & 0x0f]);
- }
- return sb.toString();
- }
3. HexString 轉 long
- public static long hexStringToLong(String s)
- {
- String serial = "0123456789ABCDEF";
-
- s = s.trim().toUpperCase();
- if( s.length() > 8 ) return 0;
-
- long num = 0;
- int len = s.length();
-
- for( int i = 0; i < len; i++)
- {
- num += (serial.indexOf( s.charAt(i) ) << (4 * (len - i - 1)));
- }
-
- return num;
- }