编程成长日记——求一个数的二进制

关于按位与&和逻辑右移>>
ide

求一个数的二进制的时候,能够采用这种方法,向右移一位,至关于除以二,因此有如下代码:spa

#include<stdio.h>
//求一个数的二进制 
int main() 
{ 
   char arr[32];
   int num=0;
   int i=0;
   printf("请输入一个数字:");
   scanf("%d",&num);
   for(i=0;i<32;i++)
   {
 	  arr[i]=(num>>i)&1; 		
   }
   for(;i;i--)
   {
 	  printf("%d",arr[i-1]);
   }  
   return 0;
}

固然还有除以二取余的办法:it

#include<stdio.h>
#define n 32
//求一个数的二进制 
int main() 
{ 
 	unsigned int num = 0;
	int count = 0;
	int i;
	int arr[n];
	printf("请输入一个数字\n");	
	scanf("%d",&num);
	printf("%d的二进制数为:",num);	
	for (i=0;i<n;i++)
	{
		arr[i]=num%2;
		num=num/2;
	}	
	for (i=n;i;i--)
	{
		printf("%d",arr[i-1]);
	}
    return 0;
}


在这里要注意的是若是用第二种方法求二进制数时,在定义num时,必定要注意其类型,若是直接定义为int型,则缩小了能够求的数的范围,不能求负数,因此必定要定义成unsigned int(无符号型)。io

相关文章
相关标签/搜索