The Professional Programmers' Calculator
IO
IO Features
Number Coding Types
Integer
Fixed-point
Floating-point
​
Integer Coding
Word Width: any from 1 to 96 bits (1 only available for unsigned coding)
Four Forms of Coding:
Unsigned
2s Complement
Excess
Binary Coded Decimal (4 to 8 bits per digit)
Keypad keys for quickly selecting 8, 16, 32 or 64 bit integer coding
​
Fixed-Point Coding
Word Width: any from 1 to 64 bits (1 only available for unsigned coding)
Precision: any from -99 to +99 (defines position of binary point within/outside bit pattern)
Two Forms of Coding:
Unsigned
2s Complement
Five rounding types:
Truncate (to 0)
Nearest (even)
Nearest (away from 0)
Down
Up
Keypad key for quickly switching to fixed-point coding
​
Floating-Point Coding
Four Forms of Coding:
IEEE 16-bit
IEEE 32-bit
IEEE 64-bit
Intel 80-bit
Five rounding types:
Truncate (to 0)
Nearest (even)
Nearest (away from 0)
Down
Up
Keypad keys for quickly switching to IEEE 32 or 64 bit floating-point coding
Keypad key for quickly switching between two number codings
​
Display Modes
Integer:
Integer Value
Bit Pattern
Integer Fields
Fixed-Point:
Fixed-point Value
Bit Pattern
Floating-Point:
Floating-point Value
Bit Pattern
Floating-point Fields (configurable display format for each field)
Floating-point Composite Value Components
Keypad key for quickly switching to/from bit pattern display mode
Keypad key for quickly switching to/from integer fields display mode
Keypad key for quickly switching to/from floating-point fields display modes
Keypad key for quickly switching to/from floating-point composite value components display mode
​
Number Display
Integer value base: any from 2 to 16
Optional leading zeros
Optional explicit plus sign
Configurable digit group separators:
Comma
Quote
Low dot
Gap
Group sizes of 3 or 4 for decimal, 4 or 8 for binary, 4 for other bases
Left, right or center digit justification
Configurable Bit Number Display
Fixed/Floating-Point Formats:
Decimal General/Exponent/Engineering
Binary General/Exponent (with optional trailing zeros)
Configurable exponent limits for general/exponent format transitions
Configurable decimal/binary point style:
Low dot
Center dot
Comma
Configurable exponent prefix style:
Upper case
Lower case
Gap
Optional segmented exponent displays
Exponent value adjustment
Fixed/Floating-Point Displayed Digits:
Auto, with optional display of all significant digits
Configurable number of significant digits
Configurable number of decimal places
Five last displayed digit rounding types:
Truncate (to 0)
Nearest (even)
Nearest (away from 0)
Down
Up
Identification of unsafe fixed/floating-point digits
Indication of rounded last displayed digit
Identification of invalid BCD bit patterns, classes of NaN floating-point bit patterns, and pseudo classes for 80-bit floating-point
Scrollable displays for large numbers of digits in small display areas
Keypad keys for quick switching to binary, octal, decimal or hexadecimal integer base
Keypad key for quick switching between fixed/floating-point binary/decimal bases
Keypad key for quick switching between fixed/floating-point formats:
Decimal General/Exponent/Engineering
Binary General/Exponent formats
​
Markers Display
Displayed below or above number display
Indicates possible area usage for integer values
4-bit boundary markers for Bit Pattern and Field display modes
Bit number display (configurable) for Bit Pattern and Field display modes
Optional field labels display for integer fields
Component labels for composites
​
Calculator Operation
All functions initiated by single keypress, i.e. no "2ndF", "shift", "inv", "arc" or "hyp" prefix keys required
Algebraic Logic or Reverse Polish Notation operation
Algebraic Logic Options:
= key repeats previous operation
With/without operator precedence
Implied multiplication before (
Reverse Polish Notation Options:
Configurable stack size
Auto push on new number entry
Auto duplicate top stack entry on pop
Preserve either bit pattern or value on changes of number coding
Optional prevention of incompatible number coding changes
Optional rounding/saturation of incompatible bit patterns when changing number coding
Optional truncation of incompatible bit patterns when changing number coding
Use truncated bit pattern/saturated value on integer/fixed-point overflow
Optional prevention of undefined floating-point operations
Optional prevention of ineffective operations
Five trigonometric function argument units, with optional conversion on change:
Radians
Degrees
Gradians
Right angles
Circles
Choice of single/multiple bit shift and rotate operations
​
Digit Sets
Three digit sizes
Optional use of bit pattern digit sets
Twelve built-in number digit sets
Twelve built-in bit pattern digit sets
Independent selection of large/medium and small number digit sets
Creation of number digit sets from installed fonts
​
Key Display
Dynamic key display for selected number coding type/display mode
Configurable foreground/background colors for each of seven key categories
Four key border styles:
None
Raised
Sunken
Flat
Three key label styles:
Traditional
Textual
Symbolic
Fully customizable selection of key labels
Four types of disabled key display (with configurable fade level):
Normal
Faded text
Faded key
Invisible
Optional audible (one of five sounds) and/or visual notification of key presses
​
Window Options
Portrait/landscape/compact keypad window organisation
Embedded/detached main number display
Optional display of floating-point Constants/Logarithmic/Exponential/Trigonometric/Hyperbolic function keys
Optional extended status displays
Optional editor for textual expression entry
Optional secondary number display:
Alternative format X
Y value
Memory contents
Optional detached main number display:
Single line - resizable width
Multiple lines - resizable width and height, options alignment of digits
​
Clipboard
Auto insertion of prefix/postfix for binary/octal/decimal/hexadecimal values when copying to clipboard
Auto removal of prefix/postfix for binary/octal/decimal/hexadecimal values, and conversion, when pasting from clipboard
Conversion to/from floating-point hexadecimal format
Optional display bitmap copy to clipboard
Optional pasting of shortcut-keys from clipboard
Configurable characters to ignore when pasting from clipboard
​
Colors
Comprehensive color selection options for all parts of windows/displays
​
Number Entry
Prevention of invalid number entry
Editing of result values
ASCII code sequence entry
​
Integer Value Operations
Add, subtract, multiply, divide, modulo
Factorial, permutations, combinations
Square, highest common factor, lowest common multiple
​
Integer Bit Pattern Operations
Bitwise Logic:
and, inclusive-or, exclusive-or, nand, inclusive-nor, exclusive-nor,
not (invert/complement), bit-clear (bitwise and with complement)
Shifts (single or multiple bit):
shift left, arithmetic shift right, logical shift right
Rotations (single or multiple bit):
rotate left, rotate right
Rotations through carry (single bit):
rotate left through carry, rotate right through carry
Carry Bit Arithmetic:
add with carry, subtract with carry (borrow), not (invert/complement) carry
Minimum and maximum value bit patterns for current coding
Random bit pattern generator
Increment/decrement bit pattern
Reverse bit pattern bytes
Number of significant bits, number of significand bits
​
Fixed-Point Value Operations
Add, subtract, multiply, divide, raise to power
Reciprocal, square, square root, multiply by 2, divide by 2
Truncate to integer, round to integer, fractional part
​
Fixed-Point Bit Pattern Operations
Bitwise Logic:
not (invert/complement)
Additional Bitwise Logic for Bit Pattern Display Mode:
and, inclusive-or, exclusive-or,
nand, inclusive-nor, exclusive-nor,
bit-clear (bitwise and with complement)
Shifts (single or multiple bit):
shift left, arithmetic shift right, logical shift right
Rotations (single or multiple bit):
rotate left, rotate right
Rotations through carry (single bit):
rotate left through carry, rotate right through carry
Minimum and maximum value bit patterns for current coding
Random bit pattern generator
Increment/decrement bit pattern
Reverse bit pattern bytes
Number of significant bits, number of significand bits
​
Floating-Point Value Operations
Add, subtract, multiply, divide, raise to power, extract root
Reciprocal, square, square root, multiply by 2, divide by 2
Truncate to integer, round to integer, fractional part
Logarithm/exponentiation for bases 2, e, 10
Logarithm to arbitrary specified base
Trigonometric functions: sine, cosine, tangent, cosecant, secant, cotangent, and their inverses
Hyperbolic functions: sinh, cosh, tanh, csch, sech, coth, and their inverses
Random value generator
Polynomial evaluation
Consolidate displayed value
Constants:
Pi, minimum denormal value, minimum normal value,
epsilon value, maximum consecutive integer value, maximum normal value
​
Expression Editor
Allows the entry and editing of simple mathematical expressions in textual form
Entered expression may be evaluated by clicking keypad key or using keyboard Enter key
May be displayed with or without other keypad keys
Five behavior options:
Auto-filtering of invalid characters
Warning of invalid characters which will be filtered
Allow/disallow memory operations
Auto-clearing of expression after evaluation
Auto-appending of algebraic logic = operation
​
Memories
Five independent memory registers
Universal operations:
clear memory, store to memory, recall from memory, exchange with memory,
clear all memories, exchange with previous memory contents, add to memory
Integer value operations:
subtract from memory, multiply to memory, divide to memory, modulo to memory
Integer bit pattern operations:
and to memory, inclusive or to memory, exclusive or to memory, bit clear to memory
Fixed/floating-point operations:
subtract from memory, multiply to memory, divide to memory, raise memory to power
Optional Memories Display Window:
Shows contents of all memory registers
Select current memory register
Medium/small digits
Narrow/wide display
Copy current memory register to clipboard
Paste from clipboard to current memory register
Recall from any memory register to X register
​
Stack Display Window
Dynamically formatted for algebraic-logic/reverse-polish-notation
Display of contents of RPN stack registers
Display of pending algebraic logic operations
Display of Last X register
Display of algebraic logic previous operation
​
X Register Details Window
Display of current coding
Display of bit pattern
Display of floating-point fields
Display of floating-point class
Display of value
Display of upper and lower limits for inexact fixed/floating-point values
Choice of binary, octal, decimal or hexadecimal displays for integer number coding type
Choice of binary or decimal displays for fixed/floating-point number coding types
Display of ASCII characters for integer number coding type, big endian or little endian order
Display of register content type: exact/inexact, positive/zero/negative, integer, none
​
Field Layouts
Twenty-one built-in standard field layout definitions
User defined field layouts:
Any number of fields within words up to 96 bits wide
Each field has independent:
Name and label
Integer coding: unsigned, 2s complement or excess
Display base: any from 2 to 16
Choice of left, right or center justification
Optional bit pattern display
Optional use of bit pattern digit set
Optional leading zero/explicit plus sign display
Edit currently selected field layout definition, or make copy and edit
Save/load field layout definitions to/from file
Unload/reload the standard field layout definitions
Operations may be performed on individual fields without affecting others
Field selection using: mouse, keypad keys, drop-down menu
Keypad key to quickly switch between display of bit numbers/field labels
​
Composites
Six built-in standard composite value definitions
User defined composite values:
Up to six components within value
Each component has independent:
Name and label
Multiple of previous component
Base component has:
Configurable number of displayed decimal places
Optional rounding
Edit currently selected composite value definition, or make copy and edit
Save/load composite definitions to/from file
Unload/reload the standard composite value definitions
Independent entry of individual component values
Component selection using: mouse, keypad keys, drop-down menu
Keypad key to select unit component
​
Configuration
Configurable startup configuration: default, last used, saved
Save/load configuration to/from file
​
Status Displays
Pseudo CPU flag display: carry, zero, negative, overflow, exact, denormal
Current integer or fixed/floating-point number coding
Current integer base or fixed/floating-point display format summary
Integer bit pattern as ASCII characters
Current trigonometric units
Current integer/fixed-point/floating-point number type conversion options
Current integer/fixed-point overflow handling
Current exponent limits for general display formats
Current secondary display type
​
Status Display Popup Windows
Set integer coding options
Set fixed-point coding options
Set floating-point coding options
Set integer base
Set fixed/floating-point display format
Enable/select bit pattern digit set
Enter ASCII character values, big or little endian order
Select trigonometric units with optional conversion
Set integer/fixed-point/floating-point number type conversion options
Set integer/fixed-point overflow handling
Set expression editor options
Set secondary display type
Set exponent limits for general display formats
​
Help
Display of comprehensive user manual, contains over 360 pages and a wealth of background information
Scrollable context dependent help windows:
Help for each option set
Keypad help
Detached display help
Memories display help
Stack display help
Field layout creation/editing help
Composite creation/editing help
Keyboard shortcuts help
Menu help
Optional display of tooltips