#include <stdio.h>
void decimalToBinaryWhile(int n) {
if (n == 0) {
printf("0");
return;
}
int binaryNum[32]; // Array to store binary digits (32 bits is usually sufficient for an int)
int i = 0;
// Use a while loop to get the remainders
while (n > 0) {
binaryNum[i] = n % 2; // Store the remainder
n = n / 2; // Update the number by dividing by 2
i++; // Increment index
}
// Use a for loop to print the array in reverse order
for (int j = i - 1; j >= 0; j--) {
printf("%d", binaryNum[j]);
}
}
int main() {
int number;
printf("Enter a decimal number: ");
scanf("%d", &number);
printf("Binary equivalent: ");
decimalToBinaryWhile(number);
printf("\n");
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGRlY2ltYWxUb0JpbmFyeVdoaWxlKGludCBuKSB7CiAgICBpZiAobiA9PSAwKSB7CiAgICAgICAgcHJpbnRmKCIwIik7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaW50IGJpbmFyeU51bVszMl07IC8vIEFycmF5IHRvIHN0b3JlIGJpbmFyeSBkaWdpdHMgKDMyIGJpdHMgaXMgdXN1YWxseSBzdWZmaWNpZW50IGZvciBhbiBpbnQpCiAgICBpbnQgaSA9IDA7CgogICAgLy8gVXNlIGEgd2hpbGUgbG9vcCB0byBnZXQgdGhlIHJlbWFpbmRlcnMKICAgIHdoaWxlIChuID4gMCkgewogICAgICAgIGJpbmFyeU51bVtpXSA9IG4gJSAyOyAvLyBTdG9yZSB0aGUgcmVtYWluZGVyCiAgICAgICAgbiA9IG4gLyAyOyAgICAgICAgIC8vIFVwZGF0ZSB0aGUgbnVtYmVyIGJ5IGRpdmlkaW5nIGJ5IDIKICAgICAgICBpKys7ICAgICAgICAgICAgICAgLy8gSW5jcmVtZW50IGluZGV4CiAgICB9CgogICAgLy8gVXNlIGEgZm9yIGxvb3AgdG8gcHJpbnQgdGhlIGFycmF5IGluIHJldmVyc2Ugb3JkZXIKICAgIGZvciAoaW50IGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pIHsKICAgICAgICBwcmludGYoIiVkIiwgYmluYXJ5TnVtW2pdKTsKICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbnVtYmVyOwogICAgcHJpbnRmKCJFbnRlciBhIGRlY2ltYWwgbnVtYmVyOiAiKTsKICAgIHNjYW5mKCIlZCIsICZudW1iZXIpOwogICAgcHJpbnRmKCJCaW5hcnkgZXF1aXZhbGVudDogIik7CiAgICBkZWNpbWFsVG9CaW5hcnlXaGlsZShudW1iZXIpOwogICAgcHJpbnRmKCJcbiIpOwogICAgcmV0dXJuIDA7Cn0K