Skip to content

Commit a446a55

Browse files
Merge pull request #17 from breakstate/breakstate-PrintBits
added PrintBits
2 parents ddb25f3 + ab6c379 commit a446a55

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed

PrintBits.c

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// Convert base10(decimal) values to base2(binary)
2+
3+
#include <stdio.h>
4+
5+
void PrintBits(int power, int num){
6+
// firstOne is a flag that stops "0" being printed before a "1" is printed
7+
int firstOne = 0;
8+
9+
// Conversion loop
10+
while (power > 0) {
11+
if (num >= power) {
12+
firstOne = 1;
13+
printf("1");
14+
num %= power;
15+
} else if (firstOne == 1) {
16+
printf("0");
17+
}
18+
power /= 2;
19+
}
20+
printf("\n");
21+
}
22+
23+
int main() {
24+
25+
int num = 0;
26+
int power = 1;
27+
28+
// Getting input
29+
printf("Please enter a numeric value: ");
30+
scanf("%d", & num);
31+
printf("%d represented in binary is: ", num);
32+
33+
// Determine highest order of magnitude needed for the base2 conversion
34+
while (power < num) {
35+
power *= 2;
36+
}
37+
38+
// Edge case in event of 0 being entered
39+
if (num == 0) {
40+
printf("0\n");
41+
} else {
42+
PrintBits(power, num);
43+
}
44+
return (0);
45+
}

0 commit comments

Comments
 (0)