First, the most basic way is apply the following pseudo-code:
int x
char[80] arr
do{
reminder = x%2;
arr[i] = reminder
}while (x/2 > 0);
reverse arr;
And the other is more advanced (and more simple), it use bitwise operations instead:
int x
while (x > 0){
arr[i] = ((x & 1) ? '1' : '0');
x >>=1;
}
reverse arr
and here's a C code for the last one:
//I am not the author of this function, I copied from the link below
void dec2binary(long i){
char* str = malloc(sizeof(long)*8*sizeof(char));
char* p = str;
while (i > 0){
*p++ = ((i & 1) ? '1' : '0');
i >>=1;
}
while( p-- != str ) /* print out the result backwards */
printf("%c",*p);
free(str);
}
please see:
http://www.daniweb.com/code/snippet216349.html
1 comment:
hello dear mohammed
what about this way ?
void getBinary(int val,char* text)
{
unsigned int comparator = ~0;
comparator = ~(comparator >> 1);
while(comparator)
{
if(val & comparator) *(text) = '1';
else *(text) = '0';
++text;
comparator >>= 1;
}
*text = '\0'; // null terminator
}
if u can test it on 64bit computer i will be Grateful to you
Post a Comment