if ($cislo1 & $cislo2) ... jak to funguje ?
10 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Ahoj, nevite presne jak funguje takovyto zapis podminky "if"? if ($cislo1 & $cislo2) Udelal jsem si pokusny script (viz nize), ale neprisel jsem na to. <? $konstanta = 2; for ($cislo=1;$cislo<=15;$cislo++) { if ($cislo & $konstanta) { echo "Konstanta " . $cislo . " vyhověla.<br><br>"; } else { echo "Konstanta " . $cislo . " <b>nevyhověla</b>.<br><br>"; } } ?> Za konstantu si zkuste dat ruzna cisla a uvidite.
-
& je logický součin
-
Pokud chceš AND (tedy $cislo1 A $cislo2), musíš použít && Poradil bych ovšem manuál k PHP: výrazy a operátory Naprostý základ.
-
Bitový AND (logický součin), značený &: rozloží každé číslo na bity (převede do dvojkové soustavy) a ntý řád prvého operandu porovná s ntým řádem druhého operandu. jsou-li oba rovny 1, je výsledek taky jedna. jinak vyjde nula. př. 13 & 7 = 1101b & 0111b = 0101b = 5 Potom toto číslo dávaš do if jako podmínka. 5 je true, protože není rovna nule. ale 0 už není true ;)
-
Nípal: Moc dík za stručné a jasné vysvětlení! . (---.chello.upc.cz): A tobe gratuluji, jsi hvezda! :-p
-
2Honza: . (---.chello.upc.cz) ma pravdu. To, ze ti tady nekdo pomuze narychlo s 1 veci, aniz bys ty zaklady mel ti moc neda.
-
Nípal: btw, k cemu je dobrej bitovej soucin? nebo treba bitova negace?
-
bitovej součin se používá zřídka, ale teoreticky by se hodil pro expertní systémy. řekněme, že máš výpovědi dvou svědků: A: Byl vysokej, hubenej, hnědou bundu a šedivějící vlasy. B: Byl vysokej, zavalitej, předvedl karate a měl černou bundu a šedivějící vlasy. tato tvrzení bysme mohli rozložit na bity, první bit je výška, druhý hubenost, další schopnost karate, další hnědost bundy, další šedivost vlasů. Pak A: 1,1,0,1,1 B: 1,0,1,0,1 Z čehož můžete bitovým součinem vyvodit, že C: 1,0,0,0,1 => Byl vysokej a měl šedivějící vlasy. víc nevíme. Teď si představ, že by svědků bylo mnohem více a popisovali by neuvěřitelný detaily... bitovou negací bys dospěl k faktům, které by byly jisté, na kterých se všichni svědci shodli ;) Mno, nebudu to pitvat... bitovou negaci si nejsem jist, zda znám, já mám pro tyhle věci jiný pojmy, spíš si je pamatuju jako OR, AND, NAND, NOR, XOR apod.
-
Bitova negace by měla přehazovat bity, takže 100110110100 011001001011
-
alebo ak potrebuješ x prepínačov s hodnotou on/of posielať, napr ako parameter takto to je dosť blbé: index.php?1a=true&2a=true&3a=true&4a=true&5a=true&....100021a=true jednoduchšie to je: index.php?1a=33 33 => 100001 (prvý a druhý práklad nesúvisia hodnotami) alebo => on/off/off/off/off/on