gpt4 book ai didi

numbers - 如何通过按位运算获得整数的第N位?

转载 作者:行者123 更新时间:2023-12-03 08:55:40 25 4
gpt4 key购买 nike

例。 123456,我们希望从右边的第三个('4')开始。

实践中的想法是分别访问每个数字(即6 5 4 3 2 1)。

首选C / C++ / C#。

最佳答案

一个更有效的实现可能是这样的:

char nthdigit(int x, int n)
{
while (n--) {
x /= 10;
}
return (x % 10) + '0';
}

如果只希望其中一位,则可以节省将所有数字转换为字符串格式的工作。并且,您不必为转换后的字符串分配空间。

如果需要考虑速度,则可以预先计算10的幂的数组,然后使用n索引到该数组:
char nthdigit(int x, int n)
{
static int powersof10[] = {1, 10, 100, 1000, ...};
return ((x / powersof10[n]) % 10) + '0';
}

正如其他人所提到的,这与以10为基础的按位运算差不多。

关于numbers - 如何通过按位运算获得整数的第N位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/203854/

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