从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获取单个数字而不使用字符串?的主要内容,如果未能解决你的问题,请参考以下文章
mongo db:从对象数组中获取子数组,其值在单个文档的范围内