Template:HasBitValueSet: Difference between revisions
Jump to navigation
Jump to search
(Created page with '<!-- Determines if a bit value is set in a value -->{{#ifeq:{{#expr:{{{1}}} mod ({{{2}}} * 2)}}|{{#expr:({{{1}}} mod ({{{2}}} * 2)) mod {{{2}}}}}|0|1}}<noinclude> It seems to be …') |
No edit summary |
||
Line 1: | Line 1: | ||
<!-- Determines if a bit value is set in a value -->{{#ifeq:{{#expr:{{{1}}} mod ({{{2}}} * 2)}}|{{#expr:({{{1}}} mod ({{{2}}} * 2)) mod {{{2}}}}}|0|1}}<noinclude> | <!-- Determines if a bit value is set in a value -->{{#ifeq:{{#expr:{{{1}}} mod ({{{2}}} * 2)}}|{{#expr:({{{1}}} mod ({{{2}}} * 2)) mod {{{2}}}}}|0|1}}<noinclude>It seems to be very difficult in MediaWiki to implement bit operations (or bitwise comparsion). | ||
It seems to be very difficult in MediaWiki to implement bit operations (or bitwise comparsion). | |||
A possibility is to use a modulation operation of the double of the value, to determine if the value is present. | A possibility is to use a modulation operation of the double of the value, to determine if the value is present. |
Latest revision as of 20:16, 28 June 2016
0It seems to be very difficult in MediaWiki to implement bit operations (or bitwise comparsion).
A possibility is to use a modulation operation of the double of the value, to determine if the value is present. 10 is bitvalue 8 and bitvalue 2. To check if bitvalue 2 is set double the bitvalue, and use it for the a modulo operation. Then with that result, do a modulo operation with the tested bitvalue. If it changes, then the bit was set.
- 10 mod (2 * 2) => 2
- 2 mod 2 => 0
- 0 is different than the 2, so the bitvalue 2 was present in 10.