js 16進制轉10進制


函數定義:

// 16進制數轉10進制
var ex16hex = function(value){
  value = stripscript(value);
    value = value.replace("0x","");
  var arr = value.split("");
  arr = arr.reverse();
  var len = arr.length;
  var res = 0;
  $.each(arr, function(i,v){
      var num = hex_change(v);
    console.log(num)
      res += muti16(num, i);
  });
  return res;
}

// 字符轉16進制數字
var hex_change = function(v){
    var res;
    switch(v){
      case "a": res = 10;break;
    case "b": res = 11;break;
    case "c": res = 12;break;
    case "d": res = 13;break;
    case "e": res = 14;break;
    case "f": res = 15;break;
    case "1":
    case "2":
    case "3":
    case "4":
    case "5":
    case "6":
    case "7":
    case "8":
    case "9": res = Number(v);break;
    default: res = 0;break;
  }
  return res;
}

// 過濾所有特殊字符
var stripscript = function(s) {
    var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?↵\r\n]");
        var rs = "";
    for (var i = 0; i < s.length; i++) {
        rs = rs + s.substr(i, 1).replace(pattern, '');
    }
    return rs;
}

// 返回 v 乘以 n 個 16 的積
var muti16 = function(v, n){
  var temp = v;
    for(var i = 0; i < n; i++){
    temp *= 16;
  }
  return temp;
}

使用例子:

var a = "0x1c", b = "1c";
console.log("a = "+ ex16hex(a)); // a = 28
console.log("b = "+ ex16hex(b)); // b = 28

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM