繁体   English   中英

Javascript将十进制转换为十六进制

[英]Javascript convert decimal to hexadecimal

我需要从十进制转换为十六进制并保持0

我得到了什么

this.item = bytes[4].toString(16) + bytes[5].toString(16) + bytes[6].toString(16) + bytes[7].toString(16);

输出:

79 2e 2 e1

我想要:

79 2e 02 e1

因此,如果低于10 ,则要将前导0 s填充到每个字节。

function toHex(bytes) {
  return bytes.reduce(function(string, byte) {
    return string + ("00" + byte.toString(16)).substr(-2);
  }, '');
}

此函数允许您将小数更改为2到36之间的任何新基数。
例如,255和16将返回FF

fromDecToBase:function(int, toNewBase) {
    var letters = ["0","1","2","3","4","5","6","7","8","9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
    var returnValue= "";
    if (toNewBase > 1 && toNewBase < 37) {
        while(int != 0) {
            rest = int % toNewBase;
            int = Math.floor(int / toNewBase);
            returnValue= letters[rest] + returnValue;
        }
    }
    return returnValue;
},

在检查字符串是否长2个字母之后你需要做的就是可以通过以下方式完成:

toHex:function(int) 
{
    hex = fromDecToBase(int, 16);
    return hex.length == 1 ? "0"+hex:hex;
},

尝试检查每个变量并填充它们,如果它们不检查为2位数:

var str = "" + 1
var pad = "00"
var ans = pad.substring(0, pad.length - str.length) + str

试试这个简单的一个。

var Decimals=[12,1,34,5];
var Hexstring="";
Decimals.forEach(function(digit ) {
Hexstring+=(" 00" + Number(digit).toString(16)).substr(-2);
});
 console.log(Hexstring);

工作小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM