Ik heb eens wat gelezen over PHP's bitwise operators en die leken verdacht veel op de C++ versies. Ze zijn zelfs hetzelfde, dus een functie die er in C++ zo uitziet:
Herschreef ik in PHP:
Zonder die type-casting gaat ie over op float.
Probleem:
In C++ is de lowercase 'a' 0110 0001
PHP maakt daarvan gewo0n 1111 1111
Vreemd niet?
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #include <iostream> using namespace std; int main() { char c = 'a'; int i; for( i = 128; i > 0; i = i / 2 ) { if( i & c ) cout << "1 "; else cout << "0 "; } system( "pause" ); return 0; } |
Herschreef ik in PHP:
PHP:
1
2
3
4
5
6
7
8
9
10
| function display_bits( $char ) { for( (int) $i = 128; (int) $i > 0; (int) $i = (int) $i / 2 ) { if( $i & $char ) echo '1 '; else echo '0 '; } } |
Zonder die type-casting gaat ie over op float.
Probleem:
In C++ is de lowercase 'a' 0110 0001
PHP maakt daarvan gewo0n 1111 1111
Vreemd niet?