編程成長日記——求一個數的二進制

關於按位與&和邏輯右移>>
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

相關文章
相關標籤/搜索