В общем, может оно и без надобности, но все-же:
Допустим, вам надо получить значение последних N цифр числа (например, из числа 1975 получить 75 (2 цифры), из 2048 получить 8 (1 цифра)). В общем, набросал такую функцию (работой с григорианским календарем навеяло, а именно просчетом дня недели по дате):
//---------------------------------------------------------------------------
int GetLastNDigitsValue(int Value, unsigned int NumOfDigits)
{
int iRightVal = 10;
for(int i=1;i<NumOfDigits;i++) iRightVal *= 10; // вычисляем кол-во разрядов
return (Value % iRightVal ); // ну а здесь все просто :-)
}
//---------------------------------------------------------------------------
И примерчик использования:
int main(int argc, char **argv)
{
for(int i=1;i<=10;i++)
printf("%i\n",GetLastNDigitsValue(-1234567890,i));
printf("\n");
for(int i=1;i<=10;i++)
printf("%i\n",GetLastNDigitsValue(1234567890,i));
}
Как обычно, замечания/предложения — сюда.