Durante una funzione, converto in binario un numero decimale con decbin e poi prendo il primo e l'ultimo bit.
Codice PHP:
<?php
#[...]
$binario = decbin($decimale);
$primo_bit = substr($binario, 0, 1);
$ultimo_bit = substr($binario, strlen($binario), 0);
if($primo_bit xor $ultimo_bit) printf("XOR vero!");
else printf("XOR falso!");
#[...]
?>
Xor dovrebbe funzionare, dato che 0 e 1 fungono come valore booleano true e false.
Infatti la xor la esegue, ma perché la xor tra 0 e 1 ritorna falsa?
Se faccio così...
Codice PHP:
<?php
#[...]
$binario = decbin($decimale);
$primo_bit = str_replace(substr($binario, 0, 1), 1, false);
$primo_bit = str_replace(substr($binario, 0, 1), 0, true);
$ultimo_bit = substr($binario, strlen($binario), 0);
$ultimo_bit = str_replace(substr($binario, 0, 1), 1, false);
$ultimo_bit = str_replace(substr($binario, 0, 1), 0, true);
if($primo_bit xor $ultimo_bit) printf("XOR vero!");
else printf("XOR falso!");
#[...]
?>
...da lo stesso risultato...
Che devo fare???