我有这段代码,我正在尝试从php移植到c / objective-c:
if ($byteIndex < count($data) ) {
$light = ( ( ($data[$byteIndex] >> $bitIndex) & 1) == 1);
}
但我似乎无法找到&gt;&gt;的任何地方在这里表明。就此而言,也不是“&amp; 1”。
答案 0 :(得分: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)