1 #include <stdio.h> 2 key_to_index(key)3int key_to_index(key) 4 char key; 5 { 6 if ( key >= '0' && key <= '9' ) 7 return (int)(key - '0'); 8 else if ( key >= 'a' && key <= 'c' ) 9 return (int)(key - 'a') + 10; 10 else if ( key >= 'e' && key <= 'f' ) 11 return (int)(key - 'e') + 13; 12 else return -100; 13 } 14 index_to_key(index)15char index_to_key(index) 16 int index; 17 { 18 if ( index >= 0 && index <= 9 ) 19 return (char)(index + '0'); 20 else if ( index >= 10 && index <= 12 ) 21 return (char)(index - 10 + 'a'); 22 else if ( index >= 13 && index <= 14 ) 23 return (int)(index - 13 + 'e'); 24 else 25 /* huh? */ 26 return '?'; 27 } 28 main()29main() 30 { 31 int i; 32 for ( i=0; i<16; i++ ) 33 { 34 printf( "%d ==> %c:%d\n", 35 i, index_to_key(i), key_to_index(index_to_key(i)) ); 36 } 37 } 38