BAND
y = a BAND b
Bitwise AND.
Truth table:
a | b | a BAND b |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
See AND for the logical operator.
Example 1
print "1011 AND 1101 = "; bin(0b1011 band 0b1101)
' Output: 1011 AND 1101 = 1001
Example 2
The following example will first pack a date into a single integer and then unpack the integer to get the original date using bitwise operations.
Def shl(n, c) = n * Pow(2, c) ' shift-left c bits in n
Def shr(n, c) = n \ Pow(2, c) ' shift-right c bits in n
Def mask(c) = Pow(2, c) - 1 ' return a mask of c bits
' get the current date as three integers:
' now is "dd/mm/yyyy"
now = Date Left(now, 2) * 1
day = Mid(now, 4, 2) * 1
month = Right(now, 4) * 1
year =
' pack the date in one integer:
' packing 5 bits (days 1..31)
p = day 4) Bor month ' packing 4 bits (months 1..12)
p = shl(p, 12) Bor year ' packing 12 bits (years 0..4095)
p = shl(p, Print Using "The current date : 00/00/0000"; day, month, year;
Print " -> Packed as: "; p; " (0x"; Hex(p); ")"
' unpack the date from one integer:
12 + 4) ' packed in bits 16..20
p_day = shr(p, 12) Band mask(4) ' packed in bits 12..15
p_month = shr(p, Band mask(12) ' packed in bits 0..11
p_year = p Print Using "The Unpacked date: 00/00/0000"; p_day, p_month, p_year;
Code samples using BAND
Language
AND
AS
BAND
BG
BOR
BYREF
CALL
CASE
CATCH
CONST
DECLARE
DEF
DO
ELIF
ELSE
ELSEIF
END
END TRY
ENDIF
EQV
EXIT
FALSE
FI
FOR
FUNC
GOSUB
GOTO
IF
IFF
IMP
IN
LABEL
LET
LIKE
LOCAL
LSHIFT
MDL
MOD
NAND
NEXT
NOR
NOT
ON
OR
REM
REPEAT
RETURN
RSHIFT
SELECT
STEP
STOP
SUB
THEN
THROW
TO
TRUE
TRY
UNTIL
USE
USG
USING
WEND
WHILE
XNOR
XOR
If there is insufficient information on this page and you wish learn more about BAND,
please send an email to smallbasic@gmail.com. You can help to improve information about
BAND by submitting a pull request,
click View Source for details. Note, an offline language reference text file is also available - see the Download section.