В php что означает символ «больше, чем дважды»? - PullRequest
2 голосов
/ 01 апреля 2011

У меня есть этот код, я пытаюсь портировать с php на c /jective-c:

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

Но я не могу нигде найти то, что >> указывает здесь.ни "& 1", в этом отношении.

1 Ответ

8 голосов
/ 01 апреля 2011

Битовые операторы - сдвиг вправо и А:)

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

...