2011-04-01 40 views
1

我有這樣的代碼,我試圖端口從PHP到C/Objective-C的:在php中,'double greater than'符號是什麼意思?

if ($byteIndex < count($data)) { 
    $light = ((($data[$byteIndex] >> $bitIndex) & 1) == 1); 
} 

,但我似乎無法找到任何地方是什麼>>在這裏指示。也不是「& 1」。

+2

這些都是[位運算符(http://php.net/manual/en/language.operators.bitwise.php)。我會解釋他們做什麼,除非我不知道。他們對我來說是一種不可思議設計的黑色藝術。 – sdleihssirhc 2011-04-01 01:43:02

+1

可能重複的[參考 - 這個符號在PHP中意味着什麼?](http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Jon 2011-04-01 01:46:52

+0

@sdl You'在那裏重新考慮太高的水平。答案是101010.:o) – deceze 2011-04-01 01:54:25

回答

8

位運算符 - 右移並與:)

http://php.net/manual/en/language.operators.bitwise.php

http://en.wikipedia.org/wiki/Bitwise_operation

$score = 2295; 

echo((($score >> 2) & 1) == 1)? "1": "^1"; // 1 
echo((($score >> 3) & 1) == 1)? "1": "^1"; // ^1 

問題是你在移動和多少位?有顏色的東西嗎?

使用&>>將十六進制轉換爲RGB(十進制)。

$hex = 0xCCFF33; // my favourite :) 

$r = $hex >> 16; 
$g = ($hex & 0x00FF00) >> 8; 
$b = $hex & 0x0000FF; 

printf("rgb(%d,%d,%d)", $r, $g, $b); // rgb(204,255,51) 

這是發生了什麼:http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fbitshe.htm