\$biton Identifier - mIRC
< mirc‎ | identifiers

Commands & Identifiers
Basics
Events
Matching Tools
Data Storage
Control Structures
GUI Scripting
Sockets
Security
Other
v · d · e

\$biton returns N with the Bth bit set to 1.

## Synopsis

`\$biton(<N>,<B>)`

## Parameters

• N - the number, in base10/decimal
• B - The Bth bit to be set

None

## Example

```//var %n 10 | echo -a \$biton(%n,3)
; returns 14
```

Here's how the answer was calculated:

1. Convert base-10 N to binary.
2. Count 3 from the right
3. that bit is set to 1.
4. Return the possibly altered number
```//var %n 10 | echo -a \$base(%n,10,2,32) | echo -a \$str(-,24) \$+ 87654321 | echo -a \$base(\$biton(%n,3),10,2,32) \$base(1110,2,10)
; returns:
00000000000000000000000000001010
------------------------87654321
00000000000000000000000000001110 14
```

If N is 2^32 or greater, returns 2^32 -1
If N is less than -2^31+1, returns 2^(B-1) +1

Using \$biton and \$bitoff, you can store several variables as bits within a single variable, instead of creating a separate variable for each.
The /window switch -wN uses bit settings, with default 3 if N not used.

```var %treebarsetting \$true
var %switchbarsetting \$true
var %n
if (%switchbarsetting) var %n \$biton(%n,1)
if (%treebarsetting) var %n \$biton(%n,2)
if (%n == \$null) var %n 3
```
```; \$biton can be simulated by using \$or to set the appropriate bit to 1
//var %n 10 | var %b 3 | echo -a within the valid number range, %n \$biton(%n,%b) is the same as \$or( %n , \$calc( 2^ (%b -1) ) )
```