300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > C语言 十进制转 二进制 八进制 十六进制

C语言 十进制转 二进制 八进制 十六进制

时间:2022-01-01 04:26:37

相关推荐

C语言 十进制转 二进制 八进制 十六进制

整体源码:

#include<stdlib.h>#include<stdio.h># define STACK_INIT_SIZE 100# define STACKINCREMENT 10typedef int SElemType;typedef struct{SElemType *base;SElemType *top;int stacksize;} sqstack;void initstack(sqstack *s){s->base=(SElemType *)malloc(STACK_INIT_SIZE *sizeof(SElemType));if(!s->base){printf("创建空间失败!\n");return;}s->top=s->base;s->stacksize=STACK_INIT_SIZE;return ;}void push(sqstack *s,SElemType e){if(s->top-s->base>=s->stacksize){s->base=(SElemType *)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(SElemType));}if(!s->base){printf("栈已满,扩充空间失败!\n");return ;}*s->top++=e;return;} void pop(sqstack *s,SElemType *e){if(s->top==s->base){printf("栈已满\n");return;}*e=*--s->top;return ;}void conversion(int number,int m){sqstack S;SElemType e;initstack(&S);if(number==0) {printf("转换后%d的进制:",m);return ; }while(number){push(&S,number%m);number=number/m;}printf("转换后%d的进制:",m); while(S.base!=S.top){pop(&S,&e);switch(e){case 10:putchar('A');break;case 11:putchar('B');break;case 12:putchar('C');break;case 13:putchar('D');break;case 14:putchar('E');break;case 15:putchar('F');break;default :printf("%d",e);}}}int main(){int number,m;printf("请输入要进行转换的数值:");scanf("%d",&number);printf("请输入要转换的数制:");scanf("%d",&m);conversion(number,m);return 0;}

源码讲解:下期分解

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。