РЕДАКТИРОВАТЬ: вопрос не ясен, но из последнего комментария автора кажется, что речь идет о получении битового представления целого числа.
Сначала вы должны использовать битовые маски, чтобы получить побитовое представление целого числа:
uint32_t theLongInt = <?>;
uint32_t mask = 0x00000001;
// bitwise representation of the integer theLongInt
uint8_t bits[30];
for(int i = 0; i < 30; i++) {
if ( (theLongInt & mask) == 1)
bits[i] = 1;
else
bits[i] = 0;
mask = mask << 1;
}
Чем вы можете сделать цикл для суммирования и умножения.
Для повышения эффективности не храните побитовое представление целого числа, а выполняйте операции в одном цикле for.