F!REv!sta, ну во первых потому что поделить на 8 это, как и показано в первом примере, (number >> 3). А >>5 это уже деление на 32 получается. К тому же получать ОСТАТОК следует вычитанием из исходного числа, опять же в примере - "number - ((number >> 3) << 3);"
Подскажите, что не так: char int_to_char(unsigned int val, unsigned int length){length=0; char ret; while(val!=0){ret=realloc(ret, ++(length)); (ret+(*length))=(val%10)|0x30; val/=10;} return ret;} int main(){unsigned int length; write(1, int_to_char(444, &length), length); return 0;} Вроде все работает, но в консоли выводит еще какой-то квадратик после 444, а также, если заменить length на 3, то выводит 44, а не 444.
15 июл 2010 в 10:47