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

C# Discussion :

[Débutant] Operation sur 8Bit


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Par défaut [Débutant] Operation sur 8Bit
    Salut²!
    Toujours et encore ou encore et toujours sur la route plus que périlleuse de l'apprentissage du C#.
    Je me retrouve cette fois ci face a un exo qui me laisse littéralement dans la touche du stade de france a 3000KM.

    On me parle d'opération sur 8Bit, on remplace l'algo auquel je suis maintenant habitué par cela
    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
    namespace ConsoleApplication1
    {
        class Class9
        {  
            static int BitSet(int nbr, int num) { }
            static int BitCLR(int nbr, int num) { }
            static int BitCHG(int nbr, int num) { }
            static int SetVakBit(int nbr, int rang,int val) { }
            static int DecalageD(int nbr, int num) { }
            static int DecalageG(int nbr, int num) { }
            static int BitRang(int nbr, int num) { }
            static int ROL(int nbr, int num) { }
            static int ROR(int nbr, int num) { }
        }
    }
    Bon, c'est claire, j'ai vraiment sauté une leçons, mais je vous jure que mon tuto (Intro a C# De Serge Tahé, dieu le bénisse encore plus que le pape(qui lui ne sait même pas faire du pascal))
    ne parle d'aucune modification a effectué sur des bits.
    je croyais que c'était pour les pro de l'assembleur et d'autre truc méchant de langages bas niveau.

    Donc si quelqu'un pouvait m'expliquer ou me donnez le lien d'un bon tuto ;(

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Ce que tu veux faire se nomme BitWise en anglais donc en cherchant "BitWise C#" tu trouves pas mal de choses. Pour savoir quels sont les opérateurs en C# c'est ici : http://msdn.microsoft.com/en-us/libr...8VS.71%29.aspx
    Et d'ailleurs, tes décalages correspondent à un Shift qui est aussi expliqué dans le lien ci dessus.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 192
    Par défaut
    Bon, je crois que ca va etre un peu plus compliqué que la derniere fois.
    Aprés avoir lu ca http://www.c-sharpcorner.com/UploadF...erOpsInCS.aspx
    j'ai pu faire les deux méthodes décalages Left/RIGHTShift mais je ne comprend pas toutes les autres

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Ton CLR, CHG, VakBit je sais pas ce que ça veux dire, donc si tu pouvais dire ce que signifie ces acronymes

    Ce qu'on peut faire sur les bits c'est les ET/OU logiques, XOR, les additions/multiplications et avec on peut tout faire (y compris définir la valeur d'un bit avec ton BitSet par exemple).

    Après tu peux trouver des trucs sur codeproject comme par exemple http://www.codeproject.com/KB/cs/CSBitWiseHelper.aspx (ceci dit, c'est très mal fait). Mais tu verra une fois que tu comprends les opérations logiques sur les bits ça va très vite et tu peux vite t'apercevoir que le code précédent de codeproject est mal fait

    Je me suis fait ça pour SetBit et IsBitSet :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
            public static bool IsBitSet(byte pInput, int pPosition)
            {
                if (pPosition < 1 || pPosition > 8)
                    throw new ArgumentOutOfRangeException("pPositition n'est pas dans [1,8]");
     
                byte mask = (byte)(1 << (pPosition - 1));
                return (pInput & mask) == mask;
            }
     
            public static byte SetBit(byte pInput, int pPosition, bool pSet)
            {
                if (pPosition < 1 || pPosition > 8)
                    throw new ArgumentOutOfRangeException("pPositition n'est pas dans [1,8]");
     
                if (pSet != IsBitSet(pInput, pPosition))
                {
                    return (byte)(pInput ^ (1 << (pPosition - 1)));
                }
                else
                    return pInput;
            }
    mais ne t'attend pas à ce que je te donne tout déjà mâché on peut coder le même genre de fonction pour des short, int, uint, long, etc.

Discussions similaires

  1. [Débutant] questions sur Visibroker
    Par Man Dak dans le forum CORBA
    Réponses: 1
    Dernier message: 29/06/2004, 23h02
  2. [débutant] conseils sur contraintes et alter table
    Par maysa dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 26/05/2004, 09h03
  3. [débutant] question sur les #
    Par Ultros dans le forum C
    Réponses: 3
    Dernier message: 29/04/2004, 12h30
  4. operation sur des alias
    Par 74160 dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/11/2003, 18h19
  5. [Débutant] Connexion sur une machine distante protégée
    Par arthix dans le forum Développement
    Réponses: 3
    Dernier message: 28/08/2003, 09h46

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