while(num>0)
{
arr[n++]=num%2+'0';
num/=2;
}
为什么要加'0'?'0'在这里的作用是什么?
加'0'的作用,是将数值 0 转换为字符 '0' , 字符'0'在计算机里 ASCII码值为48,字符‘1‘在计算机里ASCII值为49,1 + '0' = 1+48 = 49 = '1'.
这样可以让数字变为对应的数字字符,如1+'0'='1' ,即数字变为对应的ASCII码字符,即数字+'0'即可,因为这样可以计算出数字对应的ASCII码(至于为什么会有这种对应关系,这是根据数字字符在ASCII表的先后排列顺序决定的),然后可以打印出对应的数字字符,测试代码如下:
参考链接:
#include <stdio.h>
int main(void){
int num,temp,n=0;
char arr[100];
scanf("%d",&num);
temp=num;
while(num>0)
{
arr[n++]=num%2+'0';
num/=2;
}
arr[n]='\0';
printf("%d对应的二进制是:%s\n",temp,arr);
return 0;
}