19 lines
		
	
	
		
			244 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			19 lines
		
	
	
		
			244 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
int igray_(int *n0, int *idir)
 | 
						|
{
 | 
						|
  int n;
 | 
						|
  unsigned long sh;
 | 
						|
  unsigned long nn;
 | 
						|
  n=*n0;
 | 
						|
 | 
						|
  if(*idir>0) return (n ^ (n >> 1));
 | 
						|
 | 
						|
  sh = 1;
 | 
						|
  nn = (n >> sh);
 | 
						|
  while (nn > 0) {
 | 
						|
    n ^= nn;
 | 
						|
    sh <<= 1;
 | 
						|
    nn = (n >> sh);
 | 
						|
  }
 | 
						|
  return (n);
 | 
						|
}
 |