décalage sur un tableau de byte

décalage sur un tableau de byte - C#/.NET managed - Programmation

Marsh Posté le 30-09-2013 à 20:39:42    


Bonjour!
 
Je souhaiterai réaliser l'opération suivante ( en C# )  : T << 1 sauf que T est un tableau de byte et je ne vois pas comment réaliser le décalage :s ( j'ai fais plusieurs tests et aucun n'est vraiment concluant :( )
 
Faut-il que je convertisse le tableau en int avant ?
 
 
Merci !!
 

Reply

Marsh Posté le 30-09-2013 à 20:39:42   

Reply

Marsh Posté le 01-10-2013 à 14:08:57    

Tu veux décaler quoi exactement ? chaque octet de ton tableau un par un ou la représentation numérique  formée par chaque octet du tableau ?

Message cité 1 fois
Message édité par ixemul le 01-10-2013 à 14:09:10

---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
Reply

Marsh Posté le 01-10-2013 à 14:14:58    

ixemul a écrit :

Tu veux décaler quoi exactement ? chaque octet de ton tableau un par un ou la représentation numérique  formée par chaque octet du tableau ?


 
la représentation numérique formée par chaque octet du tableau

Reply

Marsh Posté le 01-10-2013 à 14:56:50    

ça tombe mal, le résultat est le même [:dpenche]
 
Le soucis que tu risque de rencontrer est fonction de la taille de ton tableau d'octet.
 
Si la taille est inférieure à 4 alors tu peux passer par une conversion en Int32 (ou taille 8 avec conversion en Int64)
 
comme ça :
 

Code :
  1. BitConverter.GetBytes((BitConverter.ToInt32(T,0) << 1))


 
Sinon, si le tableau est de taille "inconnu" ou variable, il faut décaler chaque valeur une par une
 

Code :
  1. for (int i = 0; i < bval4.Length; i++)
  2.                 bval4[i] = (byte)((int)bval4[i] << 1);



---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
Reply

Marsh Posté le 02-10-2013 à 11:15:09    

Si c'est bien un décalage bit a bit, dans ton dernier code, bval4[i] va cycler sur lui même, or il veut (je crois) décaler les bits vers bval4[i-1] et récupérer ceux de bval4[i+1] et de mettre à la fin les bits de bval4[0]...
Sinon si c'est comme j'avais compris, décaler le nombre val[i] pour le mettre à val[i-1], alors j'avais proposé une simple boucle for: http://fr.openclassrooms.com/forum [...] u-de-bytes


Message édité par breizhbugs le 02-10-2013 à 11:18:06

---------------
Seul Google le sait...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed