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

Algorithmes et structures de données Discussion :

Codage de variables.


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut Codage de variables.
    Bonjour tout le monde !
    J'essaie de trouver un codage pour une matrice de 4*4 bits.
    Il faudrait qu'il soit le plus économique possible en terme d'octets consommés en mémoire pour être utilisé facilement en C.
    Je pense d'emblée au tableau deux dimensions, mais j'aimerais avoir un truc plus efficace, sur une dimension par exemple ou alors, sur deux dims mais avec un seul int concaténant les 8bits à chaque fois. Qu'en pensez-vous ?
    Peut-on faire plus efficace ?
    Sachant que ces 8 bits sont non signés...

  2. #2
    Membre éclairé Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Par défaut
    A mon avis, si le but est d'être le plus économique possible en terme d'octets, alors il faut simplement utiliser un short.
    un codage pour une matrice de 4*4 bits
    4*4=16, or justement en C un short fait 2 octets, soit 16 bits. (je ne suis pas absolument sur que ce soit le cas sur toutes les machine, à vérifier)

    Comme ça c'est vraiment "le plus économique possible", mais le problème c'est qu'on perd la notion des 2 dimensions de la matrice. C'est donc aux fonctions qui manipulent ses éléments de le faire intelligement.

  3. #3
    Membre éprouvé

    Inscrit en
    Juin 2004
    Messages
    1 397
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 1 397
    Par défaut
    Pardn, je me suis mal exprimé !
    C'est une matrice 4*4 avec une taille de 8 bits dans chaque case.
    Donc 32bits pour quatre.
    En clair un int sur 32 bits permet de stocker quatre valeurs 8 bits concaténées, maintenant, peut-on faire plus efficace (un tableau linéaire ou un tableau deux dimensions prennent-ils la même place en mémoire ? Le fait d'utiliser une seule dimension, donc d'avoir un système d'indexage permet-il un gain en temps de calcul ?).

  4. #4
    jmv
    jmv est déconnecté
    Membre chevronné Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Par défaut
    Citation Envoyé par progman
    C'est une matrice 4*4 avec une taille de 8 bits dans chaque case.
    où est le problème ?

  5. #5
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Il faudrait qu'il soit le plus économique possible en terme d'octets consommés en mémoire pour être utilisé facilement en C.
    En C , les tableaux sont constitués d'éléments contigus en mémoire. Il n'y a pas de trous entre les éléments. Donc, en général , la question n'a pas lieu d'être (et la réponse est fournie par jmv)
    C'est une matrice 4*4 avec une taille de 8 bits dans chaque case.
    Donc, elle utilisera 16 octets. La seule façon de réduire ce nombre serait d'avoir une redondance dans les données (Par exemple, la matrice est symétrique). Toutefois, même dans ce cas, pour des matrices aussi petites, et à moins d'en avoir beaucoup, le traitement à implémenter pour traiter ce cas particulier rique de transformer le gain en pertes

Discussions similaires

  1. codage variable qualitative (dummy)
    Par figone dans le forum R
    Réponses: 3
    Dernier message: 27/06/2018, 18h23
  2. Codage d'une variable
    Par cococmoi dans le forum SAS Base
    Réponses: 15
    Dernier message: 19/09/2012, 14h50
  3. [EG] Codage de variables
    Par Au pays des stats dans le forum Outils BI
    Réponses: 4
    Dernier message: 03/01/2012, 14h53
  4. Modifier le codage d'une variable
    Par ganodelf dans le forum R
    Réponses: 1
    Dernier message: 10/03/2010, 10h14
  5. Codage variable
    Par thanos125 dans le forum SAS Base
    Réponses: 5
    Dernier message: 26/11/2008, 14h54

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