var d = 7;Définition de bits spécifiques dans un nombre
en binaire: 7 = (111)
Ce que je veux faire est de mettre la deuxième place de droite à 1 ou 0 à disposition,
et retourner la valeur décimale.
Par exemple, si je veux faire la deuxième 1 à 0, puis après une procédure doit retourner un 5,
parce que 5 = (101).
Comment implémenter cela en javascript?
EDIT
la réponse devrait être quelque chose comme ceci:
function func(decimal,n_from_right,zero_or_one)
{
}
Où décimal est le nombre à traiter, n_from_right est combien de bits de droite, dans mon exemple ci-dessus sont 2 zero_or_one signifie mettre ce bit spécifique à 0 ou 1 à disposition.
+1 - bonne réponse, bien expliqué –
Suis-je un malentendu? '~ 2! == parseInt (" 1111111111111101 ", 2)' –
@MichaelTheriot: J'ai simplifié un peu dans la réponse, les opérateurs bit à bit fonctionne sur les nombres de 32 bits, donc il devrait être un autre 16 1 pour être précis. Cependant, les nombres ne sont toujours pas les mêmes, car '~ 2' est' -3' et 'parseInt (" 11111111111111111111111111111101 ", 2)' est '4294967293'. Comme les opérateurs bit à bit fonctionnent sur des nombres de 32 bits, et '4294967293' est trop grand pour tenir dans 32 bits, il sera converti en' -3' dans l'opération. (Eh bien, il est vraiment converti en la représentation binaire du nombre, mais il apparaît comme «-3» lorsqu'il est reconverti.) – Guffa