[javascript] JavaScript에서 십진수를 16 진수로 변환하는 방법

JavaScript에서 십진수 값을 16 진수로 변환하는 방법은 무엇입니까?



답변

다음을 사용하여 숫자를 16 진수 문자열로 변환하십시오.

hexString = yourNumber.toString(16);

그리고 다음과 같이 프로세스를 되돌립니다.

yourNumber = parseInt(hexString, 16);


답변

비트 필드 또는 32 비트 색상과 같은 것을 처리해야하는 경우 부호있는 숫자를 처리해야합니다. JavaScript 함수 toString(16)는 일반적으로 원하는 것이 아닌 음의 16 진수를 반환합니다. 이 함수는 양수로 만들기 위해 미친 듯이 추가합니다.

function decimalToHexString(number)
{
  if (number < 0)
  {
    number = 0xFFFFFFFF + number + 1;
  }

  return number.toString(16).toUpperCase();
}

console.log(decimalToHexString(27));
console.log(decimalToHexString(48.6));


답변

아래 코드는 10 진수 값 d를 16 진수로 변환합니다. 또한 16 진 결과에 패딩을 추가 할 수 있습니다. 따라서 0은 기본적으로 00이됩니다.

function decimalToHex(d, padding) {
    var hex = Number(d).toString(16);
    padding = typeof (padding) === "undefined" || padding === null ? padding = 2 : padding;

    while (hex.length < padding) {
        hex = "0" + hex;
    }

    return hex;
}


답변

function toHex(d) {
    return  ("0"+(Number(d).toString(16))).slice(-2).toUpperCase()
}


답변

완전성을 위해 2의 보수 16 진수를 음수로 나타내려면 zero-fill-right shift >>>연산자를 사용할 수 있습니다 . 예를 들어 :

> (-1).toString(16)
"-1"

> ((-2)>>>0).toString(16)
"fffffffe"

그러나 한 가지 제한 사항이 있습니다. JavaScript 비트 연산자는 피연산자를 32 비트 시퀀스로 취급합니다 . 즉, 32 비트 2의 보수를 얻습니다.


답변

패딩 포함 :

function dec2hex(i) {
   return (i+0x10000).toString(16).substr(-4).toUpperCase();
}


답변

루프없이 :

function decimalToHex(d) {
  var hex = Number(d).toString(16);
  hex = "000000".substr(0, 6 - hex.length) + hex;
  return hex;
}

// Or "#000000".substr(0, 7 - hex.length) + hex;
// Or whatever
// *Thanks to MSDN

또한 평가해야하는 루프 테스트를 사용하지 않는 것이 좋습니까?

예를 들어,

for (var i = 0; i < hex.length; i++){}

있다

for (var i = 0, var j = hex.length; i < j; i++){}