IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Free Pascal Discussion :

Rotation de bits [Free Pascal]


Sujet :

Free Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut Rotation de bits
    Bonjour,

    quelle est l'instruction pour faire une rotation de bit (à droite ou à gauche). En assembleur je sais que c'est ror ou rol mais je souhaite être multiplateforme.

    J'ai cherché sur internet mais je n'ai rien trouvé.

    Si ça n'existe pas, je le coderais.

    Merci

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 466
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 466
    Par défaut
    Il faut le coder soi-même, mais comme je suis sympa, je te donne la solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function ROL(A, B: Byte): Byte; inline;
    var
      C: Byte;
    begin
      C := B mod 8;
      ROL := (A shr (8 - C)) or (A shl C);
    end;
     
    function ROR(A, B: Byte): Byte; inline;
    var
      C: Byte;
    begin
      C := B mod 8;
      ROR := (A shl (8 - C)) or (A shr C);
    end;
    Voilà

  3. #3
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    merci mais c'est faux. Voici le bon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function Rol(octet : byte; decalage : byte) : byte ;
    begin
        Result := (octet shl 1) or ((octet and 128) shr 7) ;
    end ;
     
    function Ror(octet : byte; decalage : byte) : byte ;
    begin
        Result := ((octet and 1) shl 7) or (octet shr 1) ;
    end ;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Binaire] Opérateurs de rotation dee bits ?
    Par Tifauv' dans le forum C
    Réponses: 3
    Dernier message: 09/11/2017, 11h29
  2. Rotation de bits avec Delphi.
    Par fred61 dans le forum Débuter
    Réponses: 7
    Dernier message: 25/05/2011, 12h57
  3. Comment faire une rotation des bits vers la droite ?
    Par Jean-Marc.Bourguet dans le forum Télécharger
    Réponses: 0
    Dernier message: 30/11/2010, 17h12
  4. Rotation de bits d'un char.
    Par fred61 dans le forum Débuter
    Réponses: 5
    Dernier message: 07/08/2009, 15h17
  5. rotation de bits
    Par pierabobl dans le forum C
    Réponses: 29
    Dernier message: 12/07/2006, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo