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。
您需要调用该函数。读这本书。