Преобразование переменных

Необходимо преобразовать переменную тип unsigned int в массив.
unsigned int a=2113;

unsigned char adr[] = {2, 1, 1, 3};

Как такое можно сделать подскажите плз!

да ладно? это откуда вопрос?

способ в лоб: какие значения может принимать unsigned int?
делишь на десятки тысяч, на тысячи, на сотни, на десятки и единицы
и загоняешь полученные значения в массив.
разве что ненужные нули можно грохнуть?

Так пробовал, выводит

Так пробовал, выводит какую-то хрень.
Брал так:
a = 2113;

a0 = a/1000;
a1 = a0 - a/1000;
a2 = a0 - a/100;
a3 = a0 - a/10;

что-то я плохо понял, что

что-то я плохо понял, что здесь происходит. надо было примерно так:
a0=a/10000
a1=(a-a0*10000)/1000
a2=(a-a0*10000-a1*1000)/100
a3=(a-a0*10000-a1*1000-a2*100)/10
a4=a-a0*10000-a1*1000-a2*100-a3*10
а вот как по-простому от leading zeroes избавляться - хего з