Here is one of my tools that accomplishes what you want. It will convert to/from any base 2-16. i.e. $ baseconv 255 16 (decimal 255 to hex) 255 in base 16 is: ff $ baseconv 255 2 (decimal 10 255 to binary) 255 in base 2 is: 1111 1111 $ baseconv 0x255 10 (hex to decimal) 0x255 in base 10 is: 597 $ baseconv /13 10 (octal to decimal) /13 in base 10 is: 11 To use cut/paste, compile, enjoy. Command line rules! John Gorman ---[ BEGIN CUT ]---------------------------------------------------- #include #include /******************************************************************** * * Function: baseconv * * Author: John Gorman (JHGorman@yahoo.com) * * Created: 7/23/1998 * * Description: This program will accept as input 2 values * the first value will be a number (base-10) * the second number will be a base in which to * display the first value * * Input: int number (base-10) * int base (2-16) * * Output: string representing the base-10 value in the * base requested in input value 2 * * Updates: Oct 23, 1998, John Gorman * -- Added the ability to accept an octal number * ******************************************************************* */ char* baseconv(unsigned long num, int base) { static char retbuf[100]; char *p; int iCnt=0; if (base < 2 || base > 16) { return NULL; } p = &retbuf[sizeof(retbuf)-1]; *p = '\0'; do { *--p = "0123456789abcdef"[num % base]; num /= base; if (base == 2) { iCnt++; if ( (iCnt %4) == 0) { *--p = ' '; } } } while(num != 0); return p; } void main(int argc, char *argv[]) { int number; int base; unsigned long lNumber; char *result; char *endptr; if (argc == 3) { base = atoi(argv[2]); if (argv[1][0] == '0' && argv[1][1] == 'x') { number = lNumber = strtoul(argv[1], &endptr, 16); } else if (argv[1][0] == '/') { number = lNumber = strtoul(argv[1]+1, &endptr,8); } else { number = lNumber = strtoul(argv[1], &endptr,10); /*number = atoi(argv[1]);*/ } } else { printf("\nusage: %s number base(2-16)\n", argv[0]); printf(" where number is either a base 10 number, OR\n"); printf(" a base 16 number (i.e. 0xf1), OR\n"); printf(" a base 8 number (i.e. /32)\n\n"); exit(-1); } result = baseconv(lNumber, base); printf("%s in base %d is: %s\n", argv[1], base, result); return; } ---[ END CUT ]---------------------------------------------------- -----Original Message----- From: Lucas Vogel [mailto:lvogel@exponent.com] Sent: Tuesday, February 06, 2001 7:04 PM To: 'plug-discuss@lists.plug.phoenix.az.us' Subject: looking for a program I'm looking for a program that will take either a decimal, hex or octal input and give me its decimal, hex or octal output. Can anyone tell me what I'm looking for? Lucas "I Spy" Vogel ________________________________________________ See http://PLUG.phoenix.az.us/navigator-mail.shtml if your mail doesn't post to the list quickly and you use Netscape to write mail. Plug-discuss mailing list - Plug-discuss@lists.PLUG.phoenix.az.us http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss