NAME
eval  evaluate
SYNOPSIS
eval [b][l] (expression)  value
DESCRIPTION
This command evaluates an expression or numeric value, and displays its
result in hexadecimal, decimal, octal and binary. If the resultant value
is an integral number of gigabytes, megabytes, or kilobytes, a shorthand
translation of the number will also be shown next to the hexadecimal
value. If the most significant bit is set, the decimal display will show
both unsigned and signed (negative) values. Expressions must of the format
(x operator y), where "x" and "y" may be either numeric values or
symbols. The list of operators are:
+  &  ^ * % / << >>
Enclosing the expression within parentheses is optional except when the
"", "<<" or ">>" operators are used. The single "value" argument may
be a number or symbol. Number arguments must be hexadecimal or decimal.
A leading "0x" identifies a number as hexadecimal, but is not required
when obvious. Numbers may be followed by the letters "k" or "K", "m"
or "M", and "g" or "G", which multiplies the value by a factor of 1024,
1 megabyte or 1 gigabyte, respectively. Numeric arguments may be preceded
by the one's complement operator ~.
b Indicate which bit positions in the resultant value are set.
l Numeric arguments are presumed to be 64bit values, and the result
will be expressed as a 64bit value. (ignored on 64bit processors)
However, if either operand or the resultant value are 64bit values,
then the result will be also be expressed as a 64bit value.
The b and l options must precede the expression or value arguments.
EXAMPLES
crash> eval 128m
hexadecimal: 8000000 (128MB)
decimal: 134217728
octal: 1000000000
binary: 00001000000000000000000000000000
crash> eval 128 * 1m
hexadecimal: 8000000 (128MB)
decimal: 134217728
octal: 1000000000
binary: 00001000000000000000000000000000
crash> eval (1 << 27)
hexadecimal: 8000000 (128MB)
decimal: 134217728
octal: 1000000000
binary: 00001000000000000000000000000000
crash> eval (1 << 32)
hexadecimal: 100000000 (4GB)
decimal: 4294967296
octal: 40000000000
binary: 0000000000000000000000000000000100000000000000000000000000000000
crash> eval b 41dc065
hexadecimal: 41dc065
decimal: 69058661
octal: 407340145
binary: 00000100000111011100000001100101
bits set: 26 20 19 18 16 15 14 6 5 2 0
crash> eval lb 64g
hexadecimal: 1000000000 (64GB)
decimal: 68719476736
octal: 1000000000000
binary: 0000000000000000000000000001000000000000000000000000000000000000
bits set: 36
