std:: rotr
              
  | 
             
              
  | 
            |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| 
               
                
                 
                  
                   (C++23)
                  
                 
                
                
               | 
            ||||
| Integral powers of 2 | ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| Rotating | ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| 
               
                
                 
                  
                   rotr
                  
                 
                
                
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| Counting | ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            ||||
| Endian | ||||
| 
               
                
                 
                  
                   (C++20)
                  
                 
                
                
               | 
            
| 
           
           Défini dans l'en-tête
            
         
            
             <bit>
            
           
           | 
         ||
| 
           
           
            
             template
            
            
             <
            
            
             class
            
            T
            
             >
            
             
         constexpr T rotr ( T x, int s ) noexcept ;  | 
         (depuis C++20) | |
Calcule le résultat de la rotation à droite au niveau des bits de la valeur de x par s positions. Cette opération est également connue sous le nom de décalage circulaire à droite.
       Formellement, soit
       
        N
       
       égal à
       
        
         
          std::
          
           numeric_limits
          
         
        
        
         <
        
        T
        
         >
        
        
         ::
        
        
         digits
        
       
       et
       
        
         r
        
       
       égal à
       
        
         s
         
          %
         
         N
        
       
       .
      
- Si r est  0  , retourne x ;
 - si r est positif, retourne ( x >> r ) | ( x << ( N - r ) ) ;
 - si r est négatif, retourne std:: rotl ( x, - r ) .
 
       Cette surcharge participe à la résolution de surcharge uniquement si
       
        T
       
       est un type entier non signé (c'est-à-dire,
       
        
         unsigned
        
        
         char
        
       
       ,
       
        
         unsigned
        
        
         short
        
       
       ,
       
        
         unsigned
        
        
         int
        
       
       ,
       
        
         unsigned
        
        
         long
        
       
       ,
       
        
         unsigned
        
        
         long
        
        
         long
        
       
       , ou un type entier non signé étendu).
      
         Table des matières | 
       
Paramètres
| x | - | valeur de type entier non signé | 
| s | - | nombre de positions à décaler | 
Valeur de retour
Le résultat de la rotation à droite au niveau des bits de x par s positions.
Notes
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité | 
|---|---|---|---|
         
          
           __cpp_lib_bitops
          
         
         | 
        
         
          
           201907L
          
         
         | 
        (C++20) | Opérations sur les bits | 
Exemple
#include <bit> #include <bitset> #include <cstdint> #include <iostream> int main() { using bin = std::bitset<8>; const std::uint8_t x{0b00011101}; std::cout << bin(x) << " <- x\n"; for (const int s : {0, 1, 9, -1, 2}) std::cout << bin(std::rotr(x, s)) << " <- rotr(x, " << s << ")\n"; }
Sortie :
00011101 <- x 00011101 <- rotr(x, 0) 10001110 <- rotr(x, 1) 10001110 <- rotr(x, 9) 00111010 <- rotr(x, -1) 01000111 <- rotr(x, 2)
Voir aussi
| 
          
           
            
             
              (C++20)
             
            
           
           
          | 
        
         calcule le résultat de la rotation binaire vers la gauche
          (modèle de fonction)  | 
       
| 
         effectue un décalage binaire vers la gauche et vers la droite
          (fonction membre publique de 
           std::bitset<N>
          
          )
         
         |