home *** CD-ROM | disk | FTP | other *** search
/ Resource for Source: C/C++ / Resource for Source - C-C++.iso / codelib9 / v_11_03 / 1103088a < prev    next >
Encoding:
Text File  |  1995-11-01  |  644 b   |  21 lines

  1.      #define NUMVAL(x)    (x - '0')  
  2.      #define TONUM(x)    NUMVAL(x)  
  3.      #define TODIGIT(x)    (x + '0')  
  4.      static char trconst[] = {'3', '7', '1', '3', 
  5.                '7', '1', '3', '7'};     
  6.      char calc_check_digit (char * trnum)      
  7.           {
  8.           int sum, val;      
  9.           int i;         
  10.           for ( sum = i = 0 ; i < 8 ; i++)          
  11.                {
  12.                sum += TONUM (trnum[i]) * TONUM (trconst[i]);
  13.                }
  14.           val = 10 - (sum % 10);      
  15.           if (val == 10)          
  16.                val = 0;  
  17.           return (TODIGIT (val));      
  18.           }
  19.  
  20.  
  21.