- // Convert a decimal integer do a binary string
- // added a test printf() you can remove later
- // Turbo C modified for Pelles C vegaseat 19nov2004
/* author :sailesh Kumar Website :www.yongsters.co.cc Organisation :saileshkumar.org */
- #include <stdio.h>
- void dec2bin(long decimal, char *binary);
- int main()
- {
- long decimal;
- char binary[80];
- printf("\n\n Enter an integer value : ");
- scanf("%ld",&decimal);
- dec2bin(decimal,binary);
- printf("\n The binary value of %ld is %s \n",decimal,binary);
- getchar(); // trap enter
- getchar(); // wait
- return 0;
- }
- //
- // accepts a decimal integer and returns a binary coded string
- //
- void dec2bin(long decimal, char *binary)
- {
- int k = 0, n = 0;
- int neg_flag = 0;
- int remain;
- int old_decimal; // for test
- char temp[80];
- // take care of negative input
- if (decimal < 0)
- {
- decimal = -decimal;
- neg_flag = 1;
- }
- do
- {
- old_decimal = decimal; // for test
- remain = decimal % 2;
- // whittle down the decimal number
- decimal = decimal / 2;
- // this is a test to show the action
- printf("%d/2 = %d remainder = %d\n", old_decimal, decimal, remain);
- // converts digit 0 or 1 to character '0' or '1'
- temp[k++] = remain + '0';
- } while (decimal > 0);
- if (neg_flag)
- temp[k++] = '-'; // add - sign
- else
- temp[k++] = ' '; // space
- // reverse the spelling
- while (k >= 0)
- binary[n++] = temp[--k];
- binary[n-1] = 0; // end with NULL
- }
decimal integer do a binary string
Subscribe to:
Posts (Atom)