如何在JavaScript中将小数转换为十六进制?
时间:2020-03-05 18:51:53 来源:igfitidea点击:
如何在JavaScript中将十进制值转换为其等效的十六进制?
解决方案
回答
使用以下命令将数字转换为十六进制字符串:
hexString = yourNumber.toString(16);
并通过以下步骤逆转该过程:
yourNumber = parseInt(hexString, 16);
回答
下面的代码会将十进制值d转换为十六进制。它还允许我们将填充添加到十六进制结果中。因此默认情况下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; }
回答
var number = 3200; var hexString = number.toString(16);
16是基数,十六进制数中有16个值:-)
回答
如果需要处理位字段或者32位颜色之类的内容,则需要处理带符号的数字。 javascript函数toString(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));
回答
function dec2hex(i) { var result = "0000"; if (i >= 0 && i <= 15) { result = "000" + i.toString(16); } else if (i >= 16 && i <= 255) { result = "00" + i.toString(16); } else if (i >= 256 && i <= 4095) { result = "0" + i.toString(16); } else if (i >= 4096 && i <= 65535) { result = i.toString(16); } return result }
回答
AFAIK评论57807是错误的,应该是这样的:
var hex = Number(d).toString(16);
代替
var hex = parseInt(d,16);
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 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++){}