解析字符串,每8位将2进制转为16进制
生活随笔
收集整理的這篇文章主要介紹了
解析字符串,每8位将2进制转为16进制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
public static void main(String args[]){String hex = "00000a9f0000002f";String decimal = getDecimal(hex);System.out.println(decimal); //2719 47 }private static String getDecimal(String string) {char[] ca = string.toCharArray();//拼接16進制 每隔8位添加一個空格StringBuilder sb = new StringBuilder();for (int j = 0; j < ca.length; j++) {sb.append(ca[j]);if ((j + 1) % 8 == 0) {sb.append(" ");}}System.out.println(sb);StringBuilder result = new StringBuilder();String[] split = sb.toString().split(" ");for (int i = 0; i < split.length; i++) {long btd = hexToDecimal(split[i].toString());result.append(btd + " ");}return result.toString();}private static long hexToDecimal(String sb) {char[] ca1 = sb.toCharArray();Map<Integer, Character> map = new HashMap<Integer, Character>();for (int i = 0; i < ca1.length; i++) {map.put(i,ca1[i]);}
// System.out.println(string);long sum = 0;int number = 0;for (int i = 0; i < ca1.length; i++) {char value = (char)map.get(i);//如果不是數字則進行轉換if(!Character.isDigit(value)){int b = (int)value;number = value - 87;}else{number = value - 48 ;}if(i == 7){sum += number;}if(i == 6){sum += number *16;}if(i == 5){sum += number *16*16;}if(i == 4){sum += number *16*16*16;}if(i == 3){sum += number *16*16*16*16;}if(i == 2){sum += number *16*16*16*16*16;}if(i == 1){sum += number *16*16*16*16*16*16;}if(i == 0){sum += number *16*16*16*16*16*16*16;}}return sum;}
總結
以上是生活随笔為你收集整理的解析字符串,每8位将2进制转为16进制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图片上传时即时生成多个缩略图
- 下一篇: Lucene 6.6.0在线开发文档