关于按位与&和逻辑右移>>
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