|
|
|
| Добрый день! Скажите пожалуйста, как сделать так, чтобы PHP после перевода чисел из десятичной системы исчисления в двоичную работал с ними как с двоичными(например складывал)? Такой скрипт выводит 22:
<?php
$num1 = decbin(3);
$num2 = decbin(3);
$num3 = $num1 + $num2;
echo($num3);
?>
|
Хотя если бы числа складывались в двоичной форме и результат хранился бы в двоичной форме, то вывелось бы 110. | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(24.07.2009 в 14:00)
| | decbin() возвращает строку, а не число. В выражении $num3 = $num1 + $num2 вы пытаетесь сделать операцию "11"+"11", при этом РНР автоматически преобразовывает строки в числа, и выдает результат 11+11.
Делайте
<?php
$num1 = 3;
$num2 = 3;
$num3 = $num1 + $num2;
printf("%b",$num3);
?>
|
| |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(24.07.2009 в 14:00)
| | Собственно никаких других чисел, кроме двоичных в компьютерах нет. Все что вы видите на экране - это представление числа, т.е. строка в с числом представленным в десятичной или двоичной записи. По умолчанию выводится десятичная запись, при помощи функции decbin вы можете добиться, чтобы запись была преобразована в двоичную строку. Далее вы работаете с числами как со строками, это уже не числа. Поэтому если хотите получить результат в двоичном формате, скаладывайте числа и применяйте к нему функцию decbin()
<?php
$num1 = 3;
$num2 = 3;
$num3 = $num1 + $num2;
echo decbin($num3);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(25.07.2009 в 00:57)
| | Спасибо за ответ, теперь все по полочкам разложилось) | |
|
|
|
|
|
|
|
для: Alexey_Tihonenko
(24.07.2009 в 14:00)
| | счисления
<?php
$num1 = bindec('11');
$num2 = bindec('11');
$num3 = $num1 + $num2;
echo decbin($num3);
?>
|
на самом деле bindec, конечно, никакая не bindec, а charstring_to_bitstring
и decbin, соответственно, наоборот. | |
|
|
|