编程成长日记——求一个数的二进制

来源:互联网 发布:nginx 1.8.0 编辑:程序博客网 时间:2024/06/05 19:51

关于按位与&和逻辑右移>>

求一个数的二进制的时候,可以采用这种方法,向右移一位,相当于除以二,所以有以下代码:

#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” 博客,转载请与作者联系!

0 0
原创粉丝点击