题目:将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。
首先:
1,30位数字的十进制,并没有一个数据类型可以存下30位的整数类型数字,所以考虑用字符串存储这个数据,遍历这个字符串,每个数获取就是字符的值减去30(‘0’)
2,30位的整数数字转化为二进制更加的长,所以也用十进制输出
3,输出的时候,用栈的思想进行输出
下面是我的代码,因为学习不久,完全按照栈的方法进行使用,以后要学会灵活运用思想:
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<ctype.h> 4 #include<string.h> 5 #define STACK_INIT_SIZE 100 6 #define STACK_INCRECEMENT 10 7 8 typedef struct{ 9 int *top; 10 int *base; 11 int stacksize; 12 }Stack; 13 14 int Stack_init(Stack *s){ 15 s->base=(int *)malloc(STACK_INIT_SIZE*sizeof(int));