【发布时间】:2018-06-06 18:08:41
【问题描述】:
我知道您可以将 Int 转换为字符串并使用索引器获取位置 x 处的数字,就好像它是一个 char 数组一样,但是当您处理多个大数字时,这种转换会变得有点开销。
有没有办法在不将数字转换为字符串的情况下检索位置 x 处的数字?
编辑:
谢谢大家,我将对建议的方法进行基准测试,并检查它是否比转换为字符串更好。如果有人有更好的想法,线程将保持 24 小时无人回答。
编辑 2:
在对 ulong 数字进行一些简单测试后,我得出结论,与下面提供的方法相比,转换为字符串和提取数字可能会慢 50%,请参阅批准的答案。
【问题讨论】:
-
数学上这是可能的,但我认为这不会比将其转换为字符串更开销
-
您可以移位并将移位后的值转换为字符。
-
@sino:我肯定希望它比将其转换为字符串的开销更少。毕竟,转换为字符串需要做所有相同的操作和构造字符串对象。此外,如果只需要一个数字,则 OP 可以在达到该数字时停止。
-
@sino:是什么让你产生了这个想法?与生成大量数字的字符串表示相比,一些简单的数学运算所需的开销(CPU 和内存资源)要少得多。
标签: c# type-conversion numbers int