32位16进制转换为10进制数

来源:互联网 发布:java方法重写作用 编辑:程序博客网 时间:2024/05/20 06:30

public class Trans2Ten {

 public static void main(String[] args) {
  long l = sixteen2ten("11e1-c418-a000039f-baac-7596f0d041ff");
  System.out.println("十进制:" + l);
 }

 public static long sixteen2ten(String str) {
  long result = 0;
  String a = "";
  String[] b = str.split("-");
  for (int i = 0; i < b.length; i++) {
   a += b[i];
  }
  for (int j = 0; j < a.length(); j++) {
   if (getSix(a.charAt(j)) == 0) {
    continue;
   } else {
    result += getSix(a.charAt(j))
      * Math.pow(16, (a.length() - 1 - j));
   }
  }
  System.out.println("十六进制:" + a);
  return result;
 }

 public static long getSix(char c) {
  switch (c) {
  case '0':
   return 0;
  case '1':
   return 1;
  case '2':
   return 2;
  case '3':
   return 3;
  case '4':
   return 4;
  case '5':
   return 5;
  case '6':
   return 6;
  case '7':
   return 7;
  case '8':
   return 8;
  case '9':
   return 9;
  case 'a':
   return 10;
  case 'b':
   return 11;
  case 'c':
   return 12;
  case 'd':
   return 13;
  case 'e':
   return 14;
  case 'f':
   return 15;
  default:
   return 0;
  }
 }
}

原创粉丝点击