从Int获取单个数字而不使用字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从Int获取单个数字而不使用字符串?相关的知识,希望对你有一定的参考价值。

我知道您可以将Int转换为字符串并使用索引器获取位置x处的数字,就像它是一个char数组一样,但是当您处理多个大数字时,这种转换会有点开销。

有没有办法检索位置x的数字而不将数字转换为字符串?

编辑:

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

编辑2:

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

答案

你可以这样做:

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

我们可以通过将数字减少到我们想要的数字变为某个位置来获得第n位数,例如:

假设您想要12345中的第三个数字,然后将其减少到123(通过除以10次),我们可以将该数字的余数除以10得到最后一个数字,这是我们的数字通缉。

以上是关于从Int获取单个数字而不使用字符串?的主要内容,如果未能解决你的问题,请参考以下文章

从字符串中提取单个(无符号)整数

c# 将从单个文本框中获取的多个值分配给标签

SQL:如何从 int 中获取左 3 个数字

mongo db:从对象数组中获取子数组,其值在单个文档的范围内

SSRS查询获取标量变量错误,而不是在Visual Studio中使用参数

从字符串中提取单个字符并将其转换为 int