-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathex.8.16.c
69 lines (55 loc) · 1.2 KB
/
ex.8.16.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// Program to convert a positive integer to another base
#include <stdio.h>
int convertedNumber[64];
long int numberToConvert;
int base;
int digit;
void getNumberAndBase (void)
{
printf ("Number to be converted? ");
scanf ("%li", &numberToConvert);
if ( numberToConvert != 0 ) {
printf ("Base? ");
scanf ("%i", &base);
if ( base < 2 || base > 16 ) {
printf ("Bad base - must be between 2 and 16\n");
base = 10;
}
}
}
void convertNumber (void)
{
do {
convertedNumber[digit] = numberToConvert % base;
++digit;
numberToConvert /= base;
}
while ( numberToConvert != 0 );
}
void displayConvertedNumber (void)
{
const char baseDigits[16] =
{ '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
int nextDigit;
printf ("Converted number = ");
for ( --digit; digit >= 0; --digit ) {
nextDigit = convertedNumber[digit];
printf ("%c", baseDigits[nextDigit]);
}
printf ("\n");
}
int main (void)
{
void getNumberAndBase (void), convertNumber (void),
displayConvertedNumber (void);
while ( 1 ) {
digit = 0;
getNumberAndBase ();
if ( numberToConvert == 0 )
break;
convertNumber ();
displayConvertedNumber ();
};
return 0;
}