Как получить N-ую цифру целого числа с побитовыми операциями? - PullRequest
31 голосов
/ 15 октября 2008

Пример. 123456, и мы хотим третий справа ('4').

Идея на практике состоит в том, чтобы получить доступ к каждой цифре отдельно (т.е. 6 5 4 3 2 1).

C / C ++ / C # предпочтительнее.

Ответы [ 12 ]

0 голосов
/ 15 октября 2008

Вы можете попробовать сдвиг влево (для N-1) и затем прочитать цифру в [0], так как это может быть подходом ассемблера.

123456 -> 456 -> прочитать первую цифру

0 голосов
/ 15 октября 2008

В C вы можете сделать что-то вроде следующего, где n = 0 будет означать крайнюю правую цифру

char nthDigitFromRight(int x,int n)
{
    char str[20];
    sprintf(str,"%020d",x);
    return(str[19 - x]);
}

Измените [19-x] на [20-x], если вы хотите, чтобы n = 1 для самой правой цифры.

...