您的当前位置:首页正文

数值转换

来源:爱站旅游
导读数值转换


#include

#include

#define maxssize 40

//定义一个顺序栈

typedef struct stack

{

int m[maxssize];

int top;

}Sstack, *pstack;

pstack A;

pstack B;

pstack C;

//转换成二进制

void turn_1(int date)

{

int temp, tem;

tem = date;

while(tem != 0)

{

A->top++;

temp = tem%2;

tem = tem/2;

A->m[A->top] = temp;

}

while(A->top != -1)

{

printf(\"%d\

A->top--;

}

printf(\"\\n\");

}

//转换成八进制

void turn_2(int date)

{

int temp, tem;

tem = date;

while(tem != 0)

{

B->top++;

temp = tem%8;

tem = tem/8;

B->m[B->top] = temp;

}

while(B->top != -1)

{

printf(\"%d\

B->top--;

}

printf(\"\\n\");

}

//转换成十六进制

void turn_3(int date)

{

int temp, tem;

int i;

char t;

tem = date;

while(tem != 0)

{

C->top++;

temp = tem%16;

tem = tem/16;

for(i = 10; i <= 15; i++)

{

if(temp == i)

{

temp = 55+i;

}

}

for(i = 0; i <= 9; i++)

{

if(temp == i)

{

temp = 48+i;

}

}

C->m[C->top] = temp;

}

while(C->top != -1)

{

t = C->m[C->top];

printf(\"%c\

C->top--;

}

}

void main()

{

unsigned long date;

printf(\"请输入要转换的数据\");

scanf(\"%d\

getchar();

A = (pstack)malloc(sizeof(Sstack));

B = (pstack)malloc(sizeof(Sstack));

C = (pstack)malloc(sizeof(Sstack));

A->top = -1;

B->top = -1;

C->top = -1;

turn_1(date);

turn_2(date);

turn_3(date);

printf(\"\\n\");

}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top