从INT获取单个数字而无需使用字符串



我知道您可以将int转换为字符串,并使用索引器在X位置x获取数字,就像是char数组一样,但是当您时,此转换变成了一定的开销'重新处理多个数字。

是否有一种方法可以在X位置x的位置检索数字而不将数字转换为字符串?

编辑:

谢谢大家,我将对提出的方法进行基准测试,并检查它是否比转换为字符串更好。如果有人有更好的想法,则线程将保持24小时。

编辑2:

在对乌隆数字进行了一些简单的测试之后,我得出的结论是,与下面提供的方法相比,转换为字符串和提取数字的速度最高可慢50%,请参见批准的答案。

您可以做这样的事情:

int ith_digit(int n, int i) {
    return (int) (n / pow(10, i)) % 10;
}

我们可以通过将数字降低到一个我们想要的位置的位置来获得ITH数字,例如:

假设您想要12345年的第三位数字,然后将其减少到123(通过将其除以10 i次),然后我们可以将该数字的其余部分除以10,以获取最后一位数字,这是我们想要的数字。

最新更新