wieso willst du die unbedingt in dezimal umwandeln?
schreibe es doch einfach in hexadezimaler darstellung, z.B. 0x800.
Das wäre dezimal 2048.
ver-und-en, ver-odern und weitere bitoperationen sind natürlich das, worauf die aufgabe abzielt.
ich würde allerdings nicht selber ausrechnen, wie die zahlen heißen.
sondern z.B. die erste stelle (ausgang 0) auf 1 wäre ja 0x1.
ausgang 2 auf 1 wäre 0x2
ausgang 4 auf 1 wäre 0x10
dafür könntest du jeweils #defines machen:
#define BIT0 0x1
#define BIT1 0x2
usw
dann kannst du alle addieren die an sein sollen:
unsigned short int ausgang = BIT1 + BIT3 + BIT4....
und verunden etc dann auch entsprechend mit den #defines
edith: es muss aber unbedingt unsigned short sein ;D
wenn nicht, dann wird eine 1 am höchsten bit als negatives vorzeichen interpretiert. das ist sicher auch was worauf die aufgabe abzielt