2011-04-01 4 views
1

У меня есть этот код, я пытаюсь порта от РНР с/Objective-C:В php что означает символ «double more than»?

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

Но я не могу найти где-нибудь, что >> индицирует здесь. ни "& 1", если на то пошло.

+2

Те [Битовые операторы] (http://php.net/manual/en/language.operators.bitwise.php). Я бы объяснил, что они делают, если не пойму. Они для меня черное искусство непостижимого дизайна. – sdleihssirhc

+1

Возможный дубликат [Ссылка - что означает этот символ в PHP?] (Http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Jon

+0

@sdl Вы, re думают слишком высокий уровень там. Ответ: 101010.: o) – deceze

ответ

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

Смежные вопросы