[b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]=[/color][/b] i [b][color=RED]([/color][/b][b][color=BLUE]logand[/color][/b] x i[b][color=RED]))[/color][/b]
[b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] i [b][color=RED]([/color][/b]_GetBits [b][color=RED]([/color][/b][b][color=BLUE]-[/color][/b] x i[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]lsh[/color][/b] i [b][color=#009900]1[/color][/b][b][color=RED])))[/color][/b]
[b][color=RED]([/color][/b]_GetBits x [b][color=RED]([/color][/b][b][color=BLUE]lsh[/color][/b] i [b][color=#009900]1[/color][/b][b][color=RED]))[/color][/b]
[b][color=RED])[/color][/b]
[b][color=RED])[/color][/b]
[b][color=RED])[/color][/b]
[b][color=RED]([/color][/b]_GetBits x [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b]
[b][color=RED])[/color][/b]
[i][color=#990099];; Split n into its constituent bits and get the current[/color][/i]
[i][color=#990099];; OSMODE value for comparison.[/color][/i]
[b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] n [b][color=RED]([/color][/b]_GetBits n[b][color=RED])[/color][/b] [color=black]os [/color][b][color=RED]([/color][/b][b][color=BLUE]getvar[/color][/b] [b][color=DARKRED]'[/color][/b]OSMODE[b][color=RED]))[/color][/b]
[i][color=#990099];; Now we do the operation that a bit-wise inclusive[/color][/i]
[i][color=#990099];; OR would do in one step: If the bits constituting[/color][/i]
[i][color=#990099];; our value 'n' do not appear in the current OSMODE[/color][/i]
[i][color=#990099];; value, then add them to it.[/color][/i]
[b][color=RED]([/color][/b][b][color=BLUE]foreach[/color][/b] bit n
[b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]zerop[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]logand[/color][/b] bit [color=black]os[/color][b][color=RED]))[/color][/b]