1922 Stimmen

Umwandlung von Dezimal- in Hexadezimalzahlen in JavaScript

Wie konvertiert man in JavaScript dezimale Werte in ihr hexadezimales Äquivalent?

21voto

mystifeid Punkte 276

Ohne die Schleife:

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

Ist es nicht auch besser, keine Schleifentests zu verwenden, die ausgewertet werden müssen?

Zum Beispiel anstelle von:

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

haben

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

20voto

Keith Mashinter Punkte 209

Die Kombination einiger dieser guten Ideen für eine Funktion zur Umwandlung von RGB-Werten in hexadezimale Werte (Hinzufügen der # anderswo für HTML/CSS):

function rgb2hex(r,g,b) {
    if (g !== undefined)
        return Number(0x1000000 + r*0x10000 + g*0x100 + b).toString(16).substring(1);
    else
        return Number(0x1000000 + r[0]*0x10000 + r[1]*0x100 + r[2]).toString(16).substring(1);
}

17voto

Hat Punkte 502

Für alle Interessierten, Hier ist ein JSFiddle, das die meisten Antworten auf diese Frage vergleicht .

Und das ist die Methode, für die ich mich entschieden habe:

function decToHex(dec) {
  return (dec + Math.pow(16, 6)).toString(16).substr(-6)
}

Denken Sie auch daran, dass Sie bei der Konvertierung von Dezimal- in Hexadezimalzeichen für die Verwendung in CSS als Farbdatentyp können Sie stattdessen die RGB-Werte aus dem Dezimalwert extrahieren und mit [rgb()](https://developer.mozilla.org/en/docs/Web/CSS/color_value#rgb()) .

Zum Beispiel ( JSFiddle ) :

let c = 4210330 // your color in decimal format
let rgb = [(c & 0xff0000) >> 16,  (c & 0x00ff00) >> 8,  (c & 0x0000ff)]

// Vanilla JS:
document..getElementById('some-element').style.color = 'rgb(' + rgb + ')'
// jQuery:
$('#some-element').css('color', 'rgb(' + rgb + ')')

Dies setzt #some-element 's CSS color Eigenschaft zu rgb(64, 62, 154) .

16voto

Adamarla Punkte 607

Auf eine bestimmte Anzahl von Zeichen beschränkt/aufgefüllt:

function decimalToHex(decimal, chars) {
    return (decimal + Math.pow(16, chars)).toString(16).slice(-chars).toUpperCase();
}

13voto

Danny Wilson Punkte 391
var number = 3200;
var hexString = number.toString(16);

Die 16 ist das Radix und es gibt 16 Werte in einer Hexadezimalzahl :-)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X