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

關於按位與&和邏輯右移>>

求一個數的二進制的時候,可以採用這種方法,向右移一位,相當於除以二,所以有以下代碼:

#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;
}

當然還有除以二取餘的辦法:

#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(無符號型)。

本文出自 “Original_By_Inn” 博客,轉載請與作者聯繫!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章