如何在任意基数中创建数字的零填充字符串表示? [复制]
Posted
技术标签:
【中文标题】如何在任意基数中创建数字的零填充字符串表示? [复制]【英文标题】:How can I create a zero-padded string representation of a number in an arbitrary base? [duplicate] 【发布时间】:2009-08-16 05:25:07 【问题描述】:可能重复:How can I create a Zerofilled value using javascript?
当我使用 JavaScript 将 # 从以 10 为底的十六进制转换为以 16 为底的十六进制时,它不会对数字进行零填充。
例如:
var myBaseTenNumber = 0;
myBaseTenNumber.toString(16); // should be 00 but it's just 0
有什么简单的方法可以将我的号码补零,使其长度为 2 位数?
【问题讨论】:
见:***.com/questions/1267283/… "0x" + ((new Array(8 + 1)).join("0") + parseInt(num, 10).toString(16)).substr(-8).toUpperCase () 【参考方案1】:一般是这样的
如果您预先知道长度,您可以这样做(类似):
var temp = myBaseTenNumber.toString(16);
("00" + myBaseTenNumber.toString(16)).substring(2 - temp.length, 2);
【讨论】:
记住你可以使用.substr(-2)
作为最后两位数。
老实说,我不同意“重复”标志。这有一个非常简洁的解决方案,与一般的填充问题绝对无关。这适用于任何基数的无符号整数,maxPad 是输出字符串长度。它显然需要首先检查输入数字,看看它是否超过转换后的最大长度 ((Math.pow(base,maxPad) + number)).toString(base).slice(1, maxPad +1)
解决方案中的第二行是否应该不是 '("00" + myBaseTenNumber.toString(16)).substring(temp.length);' ?
("00" + x.toString(16)).slice(-2)
@malber 但这与那里的第二个答案相同。只是有 2 个而不是 5 个零。以上是关于如何在任意基数中创建数字的零填充字符串表示? [复制]的主要内容,如果未能解决你的问题,请参考以下文章