C语言 十进制数转化为二进制 八进制 十六进制数 |
您所在的位置:网站首页 › 20转化为八进制 › C语言 十进制数转化为二进制 八进制 十六进制数 |
对于刚开始学习C语言的来说,我们知道%d可以表示十进制的数,%o可以表示八进制的数,%x用来表示十六进制的数,但却没有来表示二进制数的。 这就是相对应的八进制数和十六进制数 #include int main() { int n; printf("请输入一个十进制的整数:\n"); scanf("%d",&n); printf("八进制数为:%o\n",n); printf("十六进制数为:%x\n",n); return 0; }那么如何输入一个相对应的二进制数尼?我们知道,对于一个二进制数,只有0和1;一个十进制数转化为二进制数,就是不断模2,并且最后将模2的结果逆序输出。 下面的代码比较容易理解,但特别的繁琐。 #include #define Maxsize 100 int main() { int n=0,count=0,j=0; int a[Maxsize],b[Maxsize]; printf("请输入一个十进制整数:\n"); scanf("%d",&n); if(n>=0){ while(n!=0){ a[count]=n%2; n=n/2; count++; } for(int i=count-1;i>=0;i--)//将数组逆序输出 printf("%d",a[i]); } else{ n=-n; while(n!=0){ a[count]=n%2; n=n/2; count++; } for(int i=count-1;i>=0;i--){//将逆序输出的结果保存在另一个数组中 b[j]=a[i]; j++; } for(int i=0;i=0;i--){ //将反码加1 if(b[i]==0){ b[i]=1; break; } else{ b[i]=0; } } for(int i=0;i= 1) { printf("%d",n&i?1:0); } printf("\n"); return 0; }上述代码用的是移位,用这个方法,代码中的i必须用unsigned int 无符号整型来表示,初始化i=1,后面的u表示的就是unsigned, |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |