以下のプログラムの解説をお願いします。
C言語で、do whileを使った10進数→2進数変換プログラムです。
どの部分がどのような機能を果たしているかが本を読んでも理解できなかったので…
よろしくお願いします。
#include <stdio.h>
char* to_2(unsigned x, char* s) {
int index = 0, left = 0;
char temp;
do {
s[index++] = x % 2 + '0';
x = x / 2;
} while (x != 0);
s[index--] = '\0';
while (left < index) {
temp = s[left];
s[left] = s[index];
s[index] = temp;
++left;
--index;
}
return s;
}
int main(void) {
unsigned x;
char s[256];
printf("Enter Number:"); scanf("%u", &x);
printf("%u = %s", x, to_2(x, s));
}