From WikiChip
$biton Identifier - mIRC
< mirc‎ | identifiers

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


Synopsis[edit]

$biton(<N>,<B>)

Parameters[edit]

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

Properties[edit]

None

Example[edit]

//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) ) )

Compatibility[edit]

Added: mIRC v5.61
Added on: 23 Sep 1999
Note: Unless otherwise stated, this was the date of original functionality.
Further enhancements may have been made in later versions.


See also[edit]

[Expand]
v · d · e mIRC identifier list