hab auch gebastelt, komme aber mit meiner lösung zu spät. ausserdem ist sie nicht so elegant, und ob es funktioniert, konnte ich nur mit den wiki-beispielen testen.. -.-
EDIT @sprinter-code:Code:#include <stdio.h> #include <conio.h> // nur fuer getch int main(void) { unsigned int i,pos=1,ergebnis=0,x=15; printf("Wert x=%d wird aufgeloest:\n",x); for(i=0;i<32;i++) { int v=((x&(1<<(31-i)))<<1); if(v) { v--; if(pos)ergebnis+=v; else ergebnis-=v; printf("%d=%d\n",i,v); pos=!pos; } } printf("ergebnis:%d\n",ergebnis); getch(); return 0; }
binär 1111 ist doch 15, da bekommst du 8 raus, in der Wiki steht 10..
stimmt die Wiki nicht oder dein code? *fragend guck*







Zitieren

Lesezeichen