/* Name: bodh.c Author: x-bit Description: 十进制,二进制,八进制,十六进制的转换 Date: 04/22/2004 Copyright: [email protected] */
/*#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; }

|