Bonjour,
Je suis actuellement sur un problème de modification de chaine de caractères où je suis bloqué :
J'ai 18 octets codés en binaire donc 18 fois XXXXXXXX (où X est un 0 ou un 1), je concatène ces 18 octets binaire (=144bits) en 1 seule trame binaire :
Concaténation des mes variables Octet1bin+Octet2bin+....Octet18bin = OctetbinTotal
Je voudrais faire 'effet miroir' sur chacun de mes octets, c'est à dire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $OctetbinTotal =""; for ($i = 1; $i < 19; $i++) { $OctetbinTotal = $OctetbinTotal.${'Octet' . $i . 'bin'}; //echo "<br>".${'Octet' . $i . 'bin'}; }
si l'octet 1 vaut 00011111 je voudrais que ça me retourne 11111000, en gros que pour chaque octet le dernier bit devient le premier, l'avant dernier vers le second, ect...
Pour bien comprendre prenons le cas de 2 octets
00110011 octet 1
01010101 octet 2
0011001101010101 octet 1+2
Resultat attendu :1100110010101010
La c'est dans le cas d'une trame de 2 octets moi ma trame vaut 18octets.
Étant donné que j'ai une trame de 8x18=144bits, il faudrait que ça découpe tout les 8bits et que ça inverse l'ordre.
Pour découper ma trame tous les 8 caractéres j'ai fait ceci :
Mais ça me le met sous forme de tableau et je ne sais comment inverser les chiffre dans chaque ligne du tableau, de plus je veux que au final ma variable OctetbinTotal soit sous forme d'une chaine de caractère et non sous forme de tableau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $rest = str_split($OctetbinTotal , 8);
Merci par avance pour votre aide.
Partager