Php 检查包含的十进制数的位标志

Php 检查包含的十进制数的位标志,php,bitmap,Php,Bitmap,我需要检查某个十进制变量$decimal=3660包含在哪个标志中。我已经用十六进制常量设置了标志。之后,函数“show_flags”应输出包含十进制变量“3660”的每个标志 我没有太多关于位标志的经验,并尝试过这样做,但我没有得到任何输出。这是最新的 代码 $decimal= 3660; const FLAG_1 = 0x1; const FLAG_2 = 0x2; const FLAG_3 = 0x4; const FLAG_4 = 0x8; const FLAG_5 = 0x10;

我需要检查某个十进制变量
$decimal=3660
包含在哪个标志中。我已经用十六进制常量设置了标志。之后,函数“show_flags”应输出包含十进制变量“3660”的每个标志

我没有太多关于位标志的经验,并尝试过这样做,但我没有得到任何输出。这是最新的

代码

$decimal= 3660;

const FLAG_1 = 0x1;
const FLAG_2 = 0x2; 
const FLAG_3 = 0x4;
const FLAG_4 = 0x8; 
const FLAG_5 = 0x10; 
const FLAG_6 = 0x20; 
const FLAG_7 = 0x40;
const FLAG_8 = 0x80; 
const FLAG_9 = 0x100; 
const FLAG_10 = 0x200; 
const FLAG_11 = 0x400;  
const FLAG_12 = 0x800;  

function show_flags ($decimal) {
  if ($decimal & FLAG_1) {
    echo "Flag 1 included.<br>\n";
  }
  if ($decimal & FLAG_2) {
    echo "Flag 2 included.<br>\n";
  }
  if ($decimal & FLAG_3) {
    echo "Flag 3 included.<br>\n";
  }
  if ($decimal & FLAG_4) {
    echo "Flag 4 included.<br>\n";
  }
  if ($decimal & FLAG_5) {
    echo "Flag 5 included.<br>\n";
  }
  if ($decimal & FLAG_6) {
    echo "Flag 6 included.<br>\n";
  }
  if ($decimal & FLAG_7) {
    echo "Flag 7 included.<br>\n";
  }
  if ($decimal & FLAG_8) {
    echo "Flag 8 included.<br>\n";
  }
  if ($decimal & FLAG_9) {
    echo "Flag 9 included.<br>\n";
  }
  if ($decimal & FLAG_10) {
    echo "Flag 10 included.<br>\n";
  }
  if ($decimal & FLAG_11) {
    echo "Flag 11 included.<br>\n";
  }
  if ($decimal & FLAG_12) {
    echo "Flag 12 included.<br>\n";
  }
}
$decimal=3660;
常数标志_1=0x1;
常数标志_2=0x2;
常数标志_3=0x4;
常数标志_4=0x8;
常数标志_5=0x10;
常数标志_6=0x20;
常数标志_7=0x40;
常数标志_8=0x80;
常数标志_9=0x100;
常数标志_10=0x200;
常数标志_11=0x400;
常数标志_12=0x800;
函数show_标志($decimal){
如果($decimal&FLAG_1){
echo“包括标志1.
\n”; } 如果($decimal&FLAG_2){ echo“包含标志2.
\n”; } 如果($decimal&FLAG_3){ echo“包括标志3.
\n”; } 如果($decimal&FLAG_4){ echo“包含标志4.
\n”; } 如果($decimal&FLAG_5){ echo“包括标志5.
\n”; } 如果($decimal&FLAG_6){ echo“包括标志6.
\n”; } 如果($decimal&FLAG_7){ echo“包括标志7.
\n”; } 如果($decimal&FLAG_8){ echo“包括标志8.
\n”; } 如果($decimal&FLAG_9){ echo“包括标志9.
\n”; } 如果($decimal&FLAG_10){ echo“包括标志10.
\n”; } 如果($decimal&FLAG_11){ echo“包括标志11.
\n”; } 如果($decimal&FLAG_12){ echo“包括标志12.
\n”; } }
未使用该函数,这就是您看不到任何结果的原因

show_flags($decimal);
显示预期的结果

Flag 3 included.<br>
Flag 4 included.<br>
Flag 7 included.<br>
Flag 10 included.<br>
Flag 11 included.<br>
Flag 12 included.<br>
包括标志3。
包括标志4。
包括标志7。
包括标志10。
包括标志11。
包括标志12。

您需要调用该函数。读这本书。