数制的转换

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

/*

Name: bodh.c

Author: x-bit

Description: 十进制,二进制,八进制,十六进制的转换

Date: 04/22/2004

Copyright: x-bit@163.com

*/

/*#include <stdio.h>*/

#include <process.h>

#define M 100

/*************************************************************/

void Menu();

int GetSelect();

void ios(int select);

void exchange(long n, int base);

/*************************************************************/

int main()

{

Menu();

while(1)

{

ios(GetSelect());

printf("\n");

}

return 0;

}

/*************************************************************/

void exchange(long n, int base)

{

int arr[M];

int i=0;

do

{

arr[i++]=n%base;

n/=base;

}while(n);

/*************************************************************/

do

{

switch(arr[--i])

{

case 10: printf("A"); break;

case 11: printf("B"); break;

case 12: printf("C"); break;

case 13: printf("D"); break;

case 14: printf("E"); break;

case 15: printf("F"); break;

default: printf("%d", arr[i]);

}

}while(i);

return;

}

/*************************************************************/

void Menu()

{

printf("*****************************************\n");

printf("* 0. Quit; *\n");

printf("* 1. Binary to oct, decimal and hex; *\n");

printf("* 2. Oct to binary, decimal and hex; *\n");

printf("* 3. Decmial to binary, oct and hex; *\n");

printf("* 4. Hex to binary, oct and decimal; *\n");

printf("* Hex: 12AF; Oct: 17 *\n");

printf("*****************************************\n");

}

/*************************************************************/

int GetSelect()

{

int sel;

do

{

printf("Enter a choice(0,1,2,3,4): ");

scanf("%d", &sel);

if(!sel)

exit(1);

}while(sel!=1 && sel!=2 && sel!=3 && sel!=4);

return sel;

}

/*************************************************************/

void ios(int select)

{

int num, base;

switch(select)

{

case 1:

/***********************/

printf("Please do another: 2-3\n");

break;

case 2:

printf("Enter a Oct number: ");

scanf("%o", &num);

do

{

printf("Enter the base(2,8,10,16): ");

scanf("%d", &base);

}while(!base);

exchange(num, base);

break;

case 3:

printf("Enter a Decimal number: ");

scanf("%d", &num);

printf("Enter the base(2,8,10,16): ");

scanf("%o", &num);

do

{

printf("Enter the base(2,8,10,16): ");

scanf("%d", &base);

}while(!base);

exchange(num, base);

break;

case 4:

printf("Enter a Hex number: ");

scanf("%x", &num);

printf("Enter the base(2,8,10,16): ");

scanf("%o", &num);

do

{

printf("Enter the base(2,8,10,16): ");

scanf("%d", &base);

}while(!base);

exchange(num, base);

break;

}

return;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航