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
尝试检查每个变量,如果它们不是 2 位数长则填充它们:
var str = "" + 1
var pad = "00"
var ans = pad.substring(0, pad.length - str.length) + str
因此,如果每个字节低于 10
,您希望将前导 0
s 填充到 10
。
function toHex(bytes) {
return bytes.reduce(function(string, byte) {
return string + ("00" + byte.toString(16)).substr(-2);
}, '');
}
试试这个简单的。
var Decimals=[12,1,34,5];
var Hexstring="";
Decimals.forEach(function(digit ) {
Hexstring+=(" 00" + Number(digit).toString(16)).substr(-2);
});
console.log(Hexstring);
此函数可让您将小数更改为 2 到 36 之间的任何新基数。
例如 255 和 16 将 return 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;
},
我需要将十进制转换为十六进制并保留 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
尝试检查每个变量,如果它们不是 2 位数长则填充它们:
var str = "" + 1
var pad = "00"
var ans = pad.substring(0, pad.length - str.length) + str
因此,如果每个字节低于 10
,您希望将前导 0
s 填充到 10
。
function toHex(bytes) {
return bytes.reduce(function(string, byte) {
return string + ("00" + byte.toString(16)).substr(-2);
}, '');
}
试试这个简单的。
var Decimals=[12,1,34,5];
var Hexstring="";
Decimals.forEach(function(digit ) {
Hexstring+=(" 00" + Number(digit).toString(16)).substr(-2);
});
console.log(Hexstring);
此函数可让您将小数更改为 2 到 36 之间的任何新基数。
例如 255 和 16 将 return 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;
},