用位运算符将十进制转为二进制
代码:
#include <stdio.h>
void change_binary(char,char []);
void print_binary(char []);
int main(void)
{
char binary[8],decimal;
decimal=-2;
change_binary(decimal,binary);
print_binary(binary);
return 0;
}
void change_binary(char decimal,char binary[])
{
int i,temp=128;
for(i=0;i<8;i++)
{
binary[i]=(decimal&temp)>>(7-i);
temp/=2;
}
}
void print_binary(char binary[])
{
int i;
for(i=0;i<8;i++)
printf("%d",binary[i]);
}
我的思路:
取出一个十进制数在内存中听每一位的二进制数的数(0或1),用&运算符取,依次取出所有的,取的时候将他们保存,然后再输出。