Вы не зашли.
#11.
TLENS
Off
(14)
Moderator
2011.11.24 20:08
Переводить в любом случае не переводит.
Операторы ^, |, &, <<, >>, ~ они не переводят они работают напрямую с битом. т. е. ты смотришь на число 5 как на привычное число. Но машина на нее смотрит как на 0101 в полубайте или 0000 0101 в байте. И побитовыми операторами напрямую меняет заряд в нужных битах.
Добавлено спустя 1 минуту 18 секунд: А pow работает тоже по битам но я не пойму как там реализовано без цыкла. я так понял по скорости работы она моментально вычитает.
Код:
span style="color: #0000BB"><?phpecho '<pre>';echo decbin(125); echo PHP_EOL;echo ' ' . decbin(5); echo PHP_EOL;echo 125 ^ 5; echo PHP_EOL;echo '</pre>';?> |
Отредактировано tipsun (2011.11.24 21:09)
#13.
TLENS
Off
(14)
Moderator
2011.11.24 21:09
О спс не знал о их существовании. приходилось в ручную переводить.
Добавлено спустя 1 минуту 42 секунды: <?php
echo decbin(125); echo PHP_EOL;
echo ' ' . decbin(5); echo PHP_EOL;
echo decbin(125 ^ 5); echo PHP_EOL;
Да я сам наугад набрал только что
Код:
125 ^ 5 = 120 |
"1111101" ^ "101" = "1111000" |
#15.
TLENS
Off
(14)
Moderator
2011.11.24 21:09
1111101 ^ 0000101 = 1111000;
как работает ^:
1) 1 ^ 0 = 1
2) 1 ^ 0 = 1
3) 1 ^ 0 = 1
4) 1 ^ 0 = 1
5) 1 ^ 1 = 0
6) 0 ^ 0 = 0
7) 1 ^ 1 = 0
Добавлено спустя 1 минуту 19 секунд: tipsun написал:
Да я сам наугад набрал только что
Че правда?
#17.
TLENS
Off
(14)
Moderator
2011.11.24 21:09
Ого а я около часа потратил на создания альтернативы и то глючную формулу нашел
Я наугад набрал dec потом [ctrl]+[space] нажал и там высветилась. (Notepad++)
Код:
The above example will output: |
|
--------- --------- -- --------- |
result value op test |
--------- --------- -- --------- |
Bitwise AND |
( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101) |
( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101) |
( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101) |
( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101) |
( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101) |
|
Bitwise Inclusive OR |
( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101) |
( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101) |
( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101) |
( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101) |
(13 = 1101) = ( 8 = 1000) | ( 5 = 0101) |
|
Bitwise Exclusive OR (XOR) |
( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101) |
( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101) |
( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101) |
( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101) |
(13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101) |
Отредактировано tipsun (2011.11.24 21:09)
Просто сместить мало.
Код:
span style="color: #0000BB"><?phpecho '<pre>';echo decbin(125); echo PHP_EOL;echo ' '. decbin(5 << (3 - 1)).'='. decbin(5) .'<<'. decbin(3 - 1); //конечное число = исходное число 5 возвести в степень 3echo '</pre>';/*1111101 10100=101<<10*/?> |
Отредактировано tipsun (2011.11.24 22:10)