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