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 :

Opérations binaires


Sujet :

C

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 1
    Par défaut Opérations binaires
    Bonjour à tous,

    Je suis nouveau en programmation, est-ce que c'est possible de vous m'aider pour faire des fonctions pour un projet.
    J'ai débuté mon projet et suis bloqué à une fonction voici la description:

    Supposons, par exemple, que nous voulions transmettre la valeur 13 (en binaire : 1101). Nous effectuons alors le produit matriciel suivant :



    voir photo en pièce jointe.


    Le produit matriciel s’obtient en multipliant chaque ligne de la matrice génératrice par le vecteur de donnée à transmettre: - Faire un ET binaire entre chaque bit et faire un XOR entre les bits obtenus. Ainsi, en multipliant la 3e ligne de la matrice par la donnée (1101):
    (1 0 1 1) * (1 1 0 1) = (1 & 1) ^ (0 & 1) ^ (1 & 0) ^ (1 & 1) = 1 ^ 0 ^ 0 ^ 1 = 0


    #define MAT_GEN 0x0DB87421u //Matrice génératrice de Hamming
    #define MAT_GEN_MASK 0xF0000000u //Masque de la matrice génératrice

    uint hamm_produit_mat(uint matrice, uint data,uint nb_lignes, uint nb_cols, uint mask);

    Calcule et retourne le produit matriciel de la matrice matrice par la donnée sur 4 bits data. Le résultat est un nombre sur 8 bits. Les paramètres nb_lignes, nb_colonnes et mask désignent respectivement le nombre de lignes, le nombre de colonnes et le masque à utiliser pour la matrice matrice.

    Pour que le produit matriciel soit possible, il faut que le nombre minimal de bits de la donnée (data) soit inférieur ou égal au nombre de colonnes de la matrice. S’il n’est pas possible, retournez le code d’erreur : 0xFFFFFFFFu. Pour obtenir le nombre minimal de bits d’un nombre n: - 1 si le nombre est nul - (int)(log2(n)) + 1. //log2 est une fonction de <math.h>
    Par exemple : hamm_produit_mat(MAT_GEN, 13u, 8, 4, MAT_GEN_MASK) doit nous retourner la valeur 85 (soit 0101 0101).

    j'ai commencé par définir une macro-fonction qui isole et retourne la valeur de la ligne LN d’une matrice voici son prototype HAMM_MAT_LN(MAT, LN, NB_COL, NB_LN, MASK).

    ma question est ce c'est possible de m'aider pour coder cette fonction uint hamm_produit_mat(uint matrice, uint data,uint nb_lignes, uint nb_cols, uint mask);

    merci
    Images attachées Images attachées  

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/09/2018, 20h46
  2. Réponses: 0
    Dernier message: 30/01/2012, 17h36
  3. [langage] Retirer le premier caractère d'une chaine ?
    Par kwisach dans le forum Langage
    Réponses: 5
    Dernier message: 24/04/2003, 11h05
  4. [VB6] [MSHFlexGrid] Tri sur clic dans la première ligne
    Par degreste dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 06/03/2003, 00h42
  5. Supprimer la premiere ligne d'un fichier
    Par Kahiba dans le forum Langage
    Réponses: 7
    Dernier message: 11/02/2003, 10h18

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