Deplacer des bits ou octet en ST (proche du c#)

Résolu/Fermé
yoyofireblade Messages postés 2 Date d'inscription samedi 17 décembre 2016 Statut Membre Dernière intervention 17 décembre 2016 - 17 déc. 2016 à 13:16
yoyofireblade Messages postés 2 Date d'inscription samedi 17 décembre 2016 Statut Membre Dernière intervention 17 décembre 2016 - 17 déc. 2016 à 13:39
Bonjour
je souhaite savoir comment déplacer des bits ou octet en réduisant le temps d'exécution machine.
voila mon problème (en ST proche du C#) :
j'ai une variable (tableau) int de 16bits dont je souhaite récupérer 2 valeurs :
exemple pour le 10eme case du tableau :

Libre (9bit) |3bit|4bit
000000000_011_0010
pour la var de 4bit j’utilise un masque AND de 16#000F j’obtiens donc 000....._0010 = 10#2
(ok)
par contre celle de 3bit ->masque AND 16#0070 = 000....._0011_0000 donc =10#48
(la bonne valeur était 10#3 )
voila mon problème je ne sais comment déplacer ces cet "octet" ou bits (mis a part de faire 10#48/16 ) qui utilise trop de temps d’exécution :/
Merci a vous
Bonne journée et bonnes fêtes de fin d'année !
Yoyofireblade
A voir également:

1 réponse

NHenry Messages postés 15174 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 25 décembre 2024 350
17 déc. 2016 à 13:27
(6#0070)/0010
Une division par une puissance de 2 ou un décalage de bit et ça passe.
0
yoyofireblade Messages postés 2 Date d'inscription samedi 17 décembre 2016 Statut Membre Dernière intervention 17 décembre 2016
Modifié par yoyofireblade le 17/12/2016 à 14:00
edit: sa y est ! Je vient de trouver ce que je cherchait ,j'ai essayer les opérateurs bitwise (>> ou <<)
mais cela n'a rien donné :/ ,mais c'est l'aide de recherches plus ample que
j'ai pu trouver la fonction SHR (Décalage à droite) qui est compatible avec unity et documentation présente et qui est une "opération bit a bit" et donc qui minimise l'impact de l'occupation du temps d’exécution machine
Youpii !
merci a toi NHenry et bonne journée et de bonnes fêtes de fin d'année


bonjour et merci de votre réponse rapide
oui cela fonctionne mais c'est justement un décalage de bits que je voudrais faire
sur wiki je n'ai pas trouvé
les opération sur les bits prennent infiniment moins de temps qu'une division
mais je n'ai rien trouvé non plus dans la documentation d'unity XL ...
dans l’optique je souhaite me passer de division (2^x) mais la je ne vois plus quoi faire ...
0