C语言 十进制数转化为二进制 八进制 十六进制数

您所在的位置:网站首页 20转化为八进制 C语言 十进制数转化为二进制 八进制 十六进制数

C语言 十进制数转化为二进制 八进制 十六进制数

2024-07-10 07:22| 来源: 网络整理| 查看: 265

    对于刚开始学习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