Accés au [$i] bit [Résolu]

Messages postés
49
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
5 mai 2017
- - Dernière réponse : jarodjarod
Messages postés
49
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
5 mai 2017
- 21 juin 2010 à 16:15
bonne après midi mes amis,

Voilà mon probleme :
<?php
$Bin = 10010011 ;
// 01234567


je veux accéder au bit numéro 5 , comment je fais.


Merci beaucoup
Bonne après midi.
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
158
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
17 juin 2010
3
Merci
Il manquait un ; dans mon code précédent :
<?php
$nbr_binaire = '10010011';
$masque_binaire = '10000';
$nbr_decimal =  bindec($nbr_binaire);
$masque_decimal = bindec($masque_binaire);
$bit5 = $nbr_binaire & $masque_decimal;


Si $bit5 est différent de 0 c'est que le cinquième bit de $nbr_binaire vaut 1

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de huberdine
Messages postés
49
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
5 mai 2017
3
Merci
Merci beaucoup mon ami pour ta réponse, malgré que ce problème est résolu dans :
[b]
Changer un bit dans une chaine binaire d'un octet ???/b à l'adresse
Tapez le texte de l'url ici.

Où syndrael à répondu :
$b1 = 10010111;
function invertRow($n,$row){
 return decbin(bindec($n)^(pow(2,$row-1)));
}
echo invertRow($b1,5); //On inverse le 5ème en partant de la droite..
//On obtient 10000111


et c'était la meilleur réponse et la solution au problème, merci à lui.


Agréable journée.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 202 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jarodjarod
Messages postés
158
Date d'inscription
samedi 8 février 2003
Statut
Membre
Dernière intervention
17 juin 2010
0
Merci
Tu peux y arriver en faisant un masque binaire.
Dans le masque tu ne mets à 1 que le bit que tu veux étudier.
Ensuite il ne reste plus qu'à utiliser l'opérateur &

<?php
$nbr_binaire = '10010011';
$masque_binaire = '10000'
$nbr_decimal =  bindec($nbr_binaire);
$masque_decimal = bindec($masque_binaire);
$bit5 = $nbr_binaire & $masque_decimal;
Commenter la réponse de huberdine
Messages postés
49
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
5 mai 2017
0
Merci
merci beaucoup huberdine, c'était vraiment une aide précieuse.
Commenter la réponse de jarodjarod
Messages postés
49
Date d'inscription
samedi 7 juillet 2007
Statut
Membre
Dernière intervention
5 mai 2017
0
Merci
re,

enfaite, j'ai oublier de préciser que mon propos d'accéder au bit, c'est de me permettre de le changer.

Comment faire ?



Merci.
Commenter la réponse de jarodjarod
Messages postés
1044
Date d'inscription
lundi 7 mars 2005
Statut
Membre
Dernière intervention
13 juillet 2010
5
0
Merci
Salut,

Inversion (0 -> 1 et 1 -> 0)
<?php
$nouveau = $ancien ^ bindec('00010000');
?>


Mise à zéro (0->0 et 1->0)
<?php
$nouveau = $ancien & bindec('11101111');
?>


Mettre à 1 (0->1 et 1->1)
<?php
$nouveau = $ancien | bindec('00010000');
?>
Commenter la réponse de Arto_8000