gpt4 book ai didi

c# - 在不使用字符串的情况下从 Int 中获取单个数字?

转载 作者:行者123 更新时间:2023-12-04 03:02:23 24 4
gpt4 key购买 nike

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

有没有办法在不将数字转换为字符串的情况下检索位置 x 处的数字?

编辑:

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

编辑2:

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

最佳答案

你可以这样做:

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

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

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

关于c# - 在不使用字符串的情况下从 Int 中获取单个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47969434/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com