如何在任意基数中创建数字的零填充字符串表示? [复制]

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 个零。

以上是关于如何在任意基数中创建数字的零填充字符串表示? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

字符串中的零填充数字

go语言基础之格式化输出

在任意位置为stringbuffer 添加内容

如何以编程方式在 Silverlight 中创建一个没有框(只是复选)的复选框?

double类型的数据在计算时准确性的错误

如何在Android Studio中创建入门芯片填充?