關於按位與&和邏輯右移>>
求一個數的二進制的時候,可以採用這種方法,向右移一位,相當於除以二,所以有以下代碼:
#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” 博客,轉載請與作者聯繫!