Concaténation de bytes en c#

DarKcYbeR Messages postés 103 Statut Membre -  
blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

j'ai deux bytes
a=01 et b=10
ce que j'essaie de faire c'est de mettre les deux bytes ensemble dans un même byte
exemple:
c=0110 (qui est la concaténation de a et b)
est ce que vous avez une idée de comment faire en C# ?

merci d'avance.

6 réponses

  1. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    Salut,

    c = a*100 + b ?

    Mais je crains que tu n'aies des soucis, puisqu'un type 'byte' ne stocke que sur 8 bits. Ta variable en sortie en demande 16...
    0
  2. DarKcYbeR Messages postés 103 Statut Membre 8
     
    merci pour avoir répondu aussi vite,
    et oui il y a un problème, d'ailleurs en écrivant ça:

    byte[] tab = new byte[3];
    tab[0] = 11;
    tab[1] = 01;
    tab[2] = (byte)(100*tab[0] + tab[1]);
    System.Console.WriteLine("tab[2]=" + (tab[2]));

    j'obtiens en sortie "77", ce qui n'est clairement pas ce que je cherche à avoir ...
    0
  3. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    déjà, y'a confusion entre tab[0] et tab[1], pour l'addition, ça fait l'effet inverse :

    11 * 100 + 01 = 1101
    01*100 + 11 = 111

    et pour le reste, je sais pas, je vais manger ;-)
    0
  4. DarKcYbeR Messages postés 103 Statut Membre 8
     
    lol, bon app :)
    ceci dit, pour la confusion, c'en était pas une, c'est bien ce que je cherche a faire
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. DarKcYbeR Messages postés 103 Statut Membre 8
     
    up
    0
  7. blux Messages postés 2051 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    ceci dit, pour la confusion, c'en était pas une, c'est bien ce que je cherche a faire
    C'est l'inverse de ce que tu expose en <1>...

    j'obtiens en sortie "77", ce qui n'est clairement pas ce que je cherche à avoir ...
    Sur un byte tu seras limité à 255, alors que 1101 nécessite 11 bits pour le codage, soit un double-byte.
    0