設計一個十進位制轉化為隨意進位制的程式
#include<stdio.h>
#include<stdlib.h>
#define SIZE 20
#define MORE 10
typedef struct{
int *base;
int top;
int stacksize;
}SqStack;
void InitStack(SqStack &S)//構造一個空棧
{
S.base=(int *)malloc(SIZE*sizeof(int));
if(!S.base) return ;
S.top=0;
S.stacksize=SIZE;
}
int StackEmpty(SqStack &S)//判空 是返回1 否返回0
{
if(S.top==0) return 1;
else return 0;
}
void Push(SqStack &S,int e)//入棧
{
if(S.top>=S.stacksize)
{
S.base=(int *)realloc(S.base,(S.stacksize+MORE)*sizeof(int));
if(!S.base) exit(0);
S.stacksize+=MORE;
}
S.base[S.top++]=e;
}
void Pop(SqStack &S,int &e)//出棧
{
if(S.top==0) exit(0);
else
e=S.base[--S.top];
}
void GetTop(SqStack &S,int &e)//取棧頂元素
{
if(S.top==0) exit(0);
else
e=S.base[S.top-1];
}
void Res(SqStack &S,int n,int d)//將10進位制數n轉換為d進位制
{
InitStack(S);
while(n)
{
Push(S,n%d);
n=n/d;
}
}
int main()
{
while (1)
{
int n, d, e;
SqStack S;
printf("******************************\n");
printf("* 輸入要轉換的10進位制數: *\n");
printf("******************************\n");
scanf("%d", &n);
printf("******************************\n");
printf("* 請輸入轉換進位制: *\n");
printf("******************************\n");
printf("* 請選擇一個你要轉換的進位制 *\n");
printf("* 2-任意進位制 *\n");
printf("******************************\n");
scanf("%d", &d);
Res(S, n, d);
printf("******************************\n");
printf("* 輸出結果: *\n");
printf("******************************\n");
while (!StackEmpty(S))
{
Pop(S, e);
printf("%d", e);
}
printf("\n");
printf("******************************\n");
printf("******************************\n");
system("pause");
printf("******************************\n");
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70007056/viewspace-2793754/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 十六進位制轉換為十進位制
- 二進位制、十進位制與十六進位制相互轉化
- 1474 十進位制轉m進位制+1475 m進位制轉十進位制
- JavaScript十進位制轉換為二進位制JavaScript
- n進位制轉十進位制
- 十進位制轉十六進位制
- Qt進位制轉換(十進位制轉十六進位制)QT
- 3416:【例72.1】 二進位制轉化為十進位制
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- 十六進位制數轉十進位制
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- 十進位制轉換為十六進位制和二進位制程式碼例項
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- JavaScript 二進位制數字轉換為十進位制JavaScript
- 二進位制轉十進位制快速方法
- 【進位制轉換】十進位制與十六進位制相互轉換方法
- 大話二進位制,八進位制,十進位制,十六進位制之間的轉換
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- js二進位制和十進位制轉換程式碼JS
- Oracle中十進位制與十六進位制轉換程式Oracle
- Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 【轉帖】Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 二進位制轉十進位制快速轉換方法
- 十進位制轉化為2/8/16
- Oracle二進位制與十進位制轉換Oracle
- [MSSQL]將十進位制轉成十六進位制SQL
- 十進位制轉二進位制推導(草稿)
- (轉)【iOS 開發】二進位制、十進位制、十六進位制相互轉換的方法iOS
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- python進位制轉換(二進位制、十進位制和十六進位制)及注意事項Python
- 十六進位制轉換為八進位制
- Python 十進位制轉換為二進位制 高位補零Python