123 faa unquoted hexadecimal 0xcafe canonical hexadecimal $FFFF $prefixed hexadecimal 100h hpostfixed hexadecimal
Copyright © 2006 Edwin Steiner <edwin.steiner@gmx.net>
123 faa unquoted hexadecimal 0xcafe canonical hexadecimal $FFFF $prefixed hexadecimal 100h hpostfixed hexadecimal
'42 canonical decimal, must be quoted in hex mode
0o664 canonical octal
'0b1010 canonical binary, must be quoted in hex mode 0i1010 canonical binary, does not need a quote
+ addition  subtraction * multiplication / integer division % remainder // floor of real division %% modulo (zero or same sign as divisor)
& bitwise AND  bitwise OR ^ bitwise XOR
unary  negation unary ~ complement
<< shift left >> shift right s>> signed shift right <<< rotate left >>> rotate right
u*u multiplication with zero/zero extension s*u multiplication with sign/zero extension u*s multiplication with zero/sign extension s*s multiplication with sign/sign extension
u/u unsigned division s/u signed/unsigned division u/s unsigned/signed division s/s signed/signed division
:hi# select high # bits :lo# select low # bits :msb select MSB :lsb select LSB :# select bit # :## select bit range (can use 'msb' and 'lsb' in place of #) :(...) select bit list, eg. :(0,5msb)
[...]# put in a box of # bits width unary ^ unbox unary ^s unbox signed
< name binding
Note

The # in this list are decimal numbers that are regarded as quoted by bb — and therefore always interpreted as decimal. You cannot put expressions there. 
Note

Many operators only exhibit their special behaviour when working on boxes (ie. values of fixed width). 
Note

The division and remainder/modulo operators satisfy the following equations: 
(a / b) * b + (a % b) == a (a // b) * b + (a %% b) == a