1. 程式人生 > 程式設計 >javascript將16進位制的字串轉換為10進位制整數hex

javascript將16進位制的字串轉換為10進位制整數hex

16進位制的字串 轉換為整數

function hex2int(hex) {
 var len = hex.length,a = new Array(len),code;
 for (var i = 0; i < len; i++) {
  code = hex.charCodeAt(i);
  if (48<=code && code < 58) {
   code -= 48;
  } else {
   code = (code & 0xdf) - 65 + 10;
  }
  a[i] = code;
 }
 
 return a.reduce(function(acc,c) {
  acc = 16 * acc + c;
  return acc;
 },0);
}

// 15 + 16 * 13 + 256 = 479
console.log(hex2int("1df"));

十進位制整數轉換16進位制

function int2hex(num,width) {
  var hex = "0123456789abcdef";
  var s = "";
  while (num) {
	s = hex.charAt(num % 16) + s;
	num = Math.floor(num / 16);
  }
  if (typeof width === "undefined" || width <= s.length) {
	return "0x" + s;
  }
  var delta = width - s.length;
  var padding = "";
  while(delta-- > 0) {
	padding += "0";
  }
  return "0x" + padding + s;
}

console.log(int2hex(479,8));

0x000001df

下面是補充資料

JS-Ascii碼中字元與十進位制/十六進位制相互轉換

javascript將16進位制的字串轉換為10進位制整數hex

如上述圖ASCII標準表中,想將字元“1”轉換成十進位制或十六進位制,實現方法:

var charData = '1';
charData.charCodeAt();    //輸出結果為上表中‘1'對應的十進位制資料:49
charData.charCodeAt().toString(16);  //輸出結果為上表中‘1'對應的十六進位制資料:31

若想將不同進位制資料轉換成對應字母的實現方法:

var num = 49;
String.fromCharCode(num);  //輸出49對應的字元 '1'

JS中字元問題(二進位制/十進位制/十六進位制及ASCII碼之間的轉換)

var a='11160'; 
alert(parseInt(a,2)); //將111做為2進位制來轉換,忽略60(不符合二進位制),從左至右只將符合二進位制數的進行轉換 
alert(parseInt(a,16)); //將所有的都進行轉換 
依照此方法,其實可以轉換成任何進位制 
var a='1110'; 
alert(parseInt(a,10).toString(16)); //將A轉換為10進位制,然後再轉換成16進位制 同樣也可以是其它進位制 
下面說下ASCII 碼: 
function test(){ 
var a='ab'; 
var c=a.charCodeAt(1);//返回98 也就是b的AscII碼 位置從0開始 
 
var char=String.fromCharCode(98);返回小寫的b 
} 
//小例子 
function test(){ //輸出AscII碼擴充套件集中的字元 
var c=""; 
for(var i=1;i<65536;i++){ 
if((i%10)==0){ 
c+=i+':\t'+String.fromCharCode(i)+'\t'+'\n';}else{ 
c+=i+':\t'+String.fromCharCode(i)+'\t';} 
} 
document.getElementById("abc").innerText=c; 
} 
<div id='abc'></div> 

js字元與ASCII碼互轉的方法

大寫字母A-Z對應的ASCII碼值是65-90
小寫字母a-z對應的ASCII碼值是97-122

將字母轉為ascii嘛的方法:

var str = "A";
str.charCodeAt(); // 65

var str1 = 'a';
str1.charCodeAt(); // 97

將ascii碼轉為對應字母的方法:

var num = 97;
String.fromCharCode(num); // 'a'

var num1 = 100;
String.fromCharCode(num1); // 'd'

以上就是javascript將16進位制的字串轉換為10進位制整數hex的詳細內容,更多關於16進位制的字串轉換為10的資料請關注我們其它相關文章!