exactlyOneBitIsSet(i) provides a very fast way to determine whether an integral type has exactly one bit set.  
More...
exactlyOneBitIsSet(i) provides a very fast way to determine whether an integral type has exactly one bit set. 
For unsigned and positive signed values, this is equivalent to the value being a power of two. Note that negative powers of two are not represented with a single bit set – negate it first if you want to use this routine to determine if a signed value is a negative power of two.
- See also
 - atMostOneBitIsSet() 
 
◆ exactlyOneBitIsSet() [1/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          unsigned char  | 
          v | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ exactlyOneBitIsSet() [2/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          unsigned short  | 
          v | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ exactlyOneBitIsSet() [3/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          unsigned int  | 
          v | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ exactlyOneBitIsSet() [4/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          unsigned long  | 
          v | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ exactlyOneBitIsSet() [5/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          unsigned long long  | 
          v | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ exactlyOneBitIsSet() [6/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          signed char  | 
          v | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ exactlyOneBitIsSet() [7/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          char  | 
          v | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ exactlyOneBitIsSet() [8/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          short  | 
          v | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ exactlyOneBitIsSet() [9/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          int  | 
          v | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ exactlyOneBitIsSet() [10/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          long  | 
          v | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ exactlyOneBitIsSet() [11/11]
  
  
      
        
          | bool SimTK::exactlyOneBitIsSet  | 
          ( | 
          long long  | 
          v | ) | 
           | 
         
       
   | 
  
inline   |