4.4BSD/usr/src/contrib/calc-1.26.4/help/operator

Operators

	The operators are similar to C, but the precedence of most of
	the operators differs.  In addition, there are several additional
	operators, and some C operators are missing.  The following list
	gives the operators arranged in order of precedence, from the
	least tightly binding to the most tightly binding.


	,	Comma operator.
		For situations in which a comma is used for another purpose
		(function arguments, array indexing, and the print statement),
		parenthesis must be used around the comma operator.

	a?:b:c	Conditional value.
		The test for 'a' is identical to an if test.

	=  +=  -=  *=  /=  %=  //=  &=  |=  <<=  >>=  ^=  **=
		Assignments.

	||	Conditional OR.
		Unlike C, the result is the first non-zero expression or 0,
		instead of just 0 or 1.

	&&	Conditional AND.
		Unlike C, the result is the last expression or 0,
		instead of just 0 or 1.

	==  !=  <=  >=  <  >
		Relations.

	+  -
		Binary plus and minus.

	*  /  //  %
		Multiply, divide. and modulo.
		Please Note: The '/' operator is a fractional divide,
		whereas the '//' is an integral divide.  Thus think of '/'
		as division of real numbers, and think of '//' as division
		of integers (e.g., 8 / 3 is 8/3 whereas 8 // 3 is 2).
		The '%' is integral or fractional modulus (e.g., 11%4 is 3,
		and 10%pi() is ~.575222).

	|	Logical OR.
		The signs of numbers do not affect the bit value.

	&	Logical AND.
		The signs of numbers do not affect the bit value.

	^  **  <<  >>
		Powers and shifts.
		The '^' and '**' are both exponentiation (e.g., 2^3 is 8).
		The signs of numbers do not affect the bit values of shifts.
		These operators associate rightward (e.g., 1<<3^2 is 512).

	+  -  !
		Unary operators.
		The '!' is the logical NOT operator.  Be careful about
		using this as the first character of a top level command,
		since it is also used for executing shell commands.

	++  --
		Pre or post indexing.
		These are applicable only to variables.

	[ ]  [[ ]]  .  ( )
		Indexing, double-bracket indexing, element references,
		and function calls.  Indexing can only be applied to matrices,
		element references can only be applied to objects, but
		double-bracket indexing can be applied to matrices, objects,
		or lists.

	variables  constants  .  ( )
		These are variable names and constants, the special '.' symbol,
		or a parenthesized expression.  Variable names begin with a
		letter, but then can contain letters, digits, or underscores.
		Constants are numbers in various formats, or strings inside
		either single or double quote marks.