February 9, 2012
Integer To Binary Converter
Integer To Binary Converter
I am interesting about how we can convert a integer number to binary number. So, I am try to create Integer To Binary Converter with C source Code.I am create this code from tutorial at http://www.helpwithpcs.com/courses/binary-numbers.htm.
Please look Integer To Binary source code below :
/*
* iolibrary.c
*
* Created on: Feb 9, 2012
* Author: toto
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
void int2binary(int inumber, char *binnumber, int lenbuffer);
int main(int argc, char **argv)
{
int inumber;
char *binnumber;
int nbuffer;
sscanf(argv[1], "%i", &inumber);
sscanf(argv[2], "%i", &nbuffer);
binnumber = (char*) calloc(nbuffer, sizeof(char));
int2binary(inumber, binnumber, nbuffer);
printf("Input = %i --> binary number = %s \n", inumber, binnumber);
free(binnumber);
return(1);
}
/* convert integer to binary number */
void int2binary(int inumber, char *binnumber, int lenbuffer)
{
int iremainder, iresidue;
char *tmp;
memset(binnumber, 0, lenbuffer*sizeof(char)); //initialization binary output
tmp = (char*) calloc(lenbuffer, sizeof(char));
while(true) //loop until number=0
{
memset(tmp, 0, lenbuffer*sizeof(char));
iremainder = inumber%2; //get Remainder after division with 2
iresidue = (inumber-iremainder) / 2; //update residue after division with 2
inumber = iresidue; //update input number with
sprintf(tmp,"%i%s", iremainder, binnumber);
sprintf(binnumber,"%s",tmp);
if(inumber == 0) //exit loop if dont number=0
break;
}
free(tmp);
}
Save this Integer to Binary converter source code with name cbinary_converter.c. Compile with command :
gcc cbinary_converter.c -o cbinary_converter
We can running this Integer to Binary converter code with command :
./cbinary_converter integer_number buffer_alloc_length
buffer_alloc_length is maximum buffer allocation for create binary number. This number must be bigger than output binary number character.
Example Output:
toto@toto-laptop:~/Documents$ ./cbinary_converter 78 100 Input = 78 --> binary number = 1001110 toto@toto-laptop:~/Documents$ ./cbinary_converter 789 100 Input = 789 --> binary number = 1100010101