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 octets / valeurs


Sujet :

Algorithmes et structures de données

  1. #1
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut Codage octets / valeurs
    Salut tout le monde,

    Je souhaiterais savoir combien d'octets il me faut au minimum pour pouvoir coder 16 valeurs comprises entre 0 et 255. Je sais qu'il y a des pistes exploitables comme les "masques de bits" et tout (?), mais je sais pas à quel genre de fiabilité je dois m'attendre et surtout s'il y a un risque d'avoir des cas de blocage suivant les cas de figures.

    Je pense à 4 octets, mais je suis peut-être à côté de la plaque.

    Merci à vous.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 17
    Points : 24
    Points
    24
    Par défaut
    Salut.

    Un octet permet de représenter une valeur comprise entre 0 et 255 donc il t'en faudrait 16 logiquement.

  3. #3
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Merci pour ta réponse,

    Et effectivement, ce que tu écris, c'est ce qui vient en premier à l'esprit, mais quand je viens dans cette rubrique, heureusement rarement, c'est que je suis en recherche d'espoir

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 037
    Points
    1 037
    Par défaut
    Bonjour,

    Pour moi avec 16 valeurs un demi-octet suffit pour les représenter.

    Maintenant quel est le but au final ?

  5. #5
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    Tu as 2^n cas possible avec une base binaire,

    Donc 16 cas, ça te donne 2^4, ce qui fait un demi-octet, en ayant par avance les 16 cas, et en faisant une table, par exemple :

    [0][0][0][1] = 45
    [0][0][1][0] = 147
    ... etc

    par contre, un demi octet, ne te permet pas de compter "normalement", au delà de 15.

  6. #6
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Salut et merci pour vos réponses à tout les deux.

    Mais je crois qu'il y a un quiproquo.

    En effet, mon objectif est de coder 16 nombres sur 8 octets, et chacun de ces nombres est compris entre 0 et 255. Sauf erreur de ma part, la notion de table présentée ne va pas dans ce sens, ou peut-être que je n'en ai pas compris le but ?

    Enfin, si vous pouviez confirmer.

    Encore merci.

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Si les nombres sont quelconques entre 0 et 255, on ne peut pas trouver de codage qui dans tous les cas prennent moins de 16 octets.

    Si certains nombres sont plus probables que d'autres, on pourra appliquer des techniques de compression. ainsi, dans la majorité des cas, on aura un codage plus court (moins de 16 octets), mais dans une minorité de cas, le codage necessitera plus de 16 octets.

  8. #8
    Membre expert
    Avatar de Golgotha
    Homme Profil pro
    Full-stack Web Developer
    Inscrit en
    Août 2007
    Messages
    1 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Full-stack Web Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2007
    Messages : 1 387
    Points : 3 535
    Points
    3 535
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par minnesota Voir le message
    Salut et merci pour vos réponses à tout les deux.

    Mais je crois qu'il y a un quiproquo.

    En effet, mon objectif est de coder 16 nombres sur 8 octets, et chacun de ces nombres est compris entre 0 et 255. Sauf erreur de ma part, la notion de table présentée ne va pas dans ce sens, ou peut-être que je n'en ai pas compris le but ?

    Enfin, si vous pouviez confirmer.

    Encore merci.

    un nombre compris entre 0 et 255 se code sur 1 octet.
    Si les 16 nombres ne sont pas connu à l'avance, tu aura obligatoirement besoin de 16 octets, en toute logique... dès que tu utilisera un type de compression, tu aura besoin d'encore plus d'octet, et vu que tu as un nombre très petit de donnée, la compression va plutôt faire augmenté la taille de tes données, la compression deviens utile sur un nombre important de données.

    Si les nombre sont connu à l'avance, avec une table de correspondance, ça te donne bien 8 octets :

    [0000] = 10 [1001] = 180
    [0001] = 20 [1010] = 190
    [0010] = 40 [1011] = 200
    [0011] = 60 [1100] = 210
    [0100] = 80 [1101] = 220
    [0101] = 100 [1110] = 230
    [0110] = 120 [1111] = 240
    [0111] = 140
    [1000] = 160

    [[0000][0100]][[1000][1110]]...

  9. #9
    Membre émérite
    Inscrit en
    Avril 2010
    Messages
    1 495
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 1 495
    Points : 2 274
    Points
    2 274
    Par défaut
    Merci beaucoup, c'est très clair maintenant.

    Bon, aussi, dans l'état actuel des choses, je ne peux préjuger de la prédictibilité de ces nombres. On va faire avec alors. Et surtout dommage pour la compression, ça me semblait une bonne piste.

    Grand merci à tous.

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

Discussions similaires

  1. Codage CRC - valeur non attendue
    Par VincM dans le forum Débuter
    Réponses: 4
    Dernier message: 22/05/2013, 20h21
  2. Codage des valeurs des pixels d'une image ?
    Par Imène_23 dans le forum Débuter
    Réponses: 3
    Dernier message: 02/08/2011, 14h23
  3. récupération d'une valeur sur deux octets
    Par sanatou dans le forum C++
    Réponses: 6
    Dernier message: 09/01/2007, 16h35
  4. Décomposer une valeur pour en retirer les octets ?
    Par AsmCode dans le forum Algorithmes et structures de données
    Réponses: 34
    Dernier message: 26/07/2005, 19h01
  5. [Codage] MD5 en 16 octets
    Par TreizeSegments dans le forum Algorithmes et structures de données
    Réponses: 20
    Dernier message: 21/06/2005, 12h24

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