Bits - Maple Programming Help

Home : Support : Online Help : Programming : Bits : Bits/Settings

Bits

 Settings
 set parameters for operations in the Bits package

 Calling Sequence Settings(options)

Parameters

 options - optional equations (set) or names (display)

Description

 • The Settings command is provided to control the settings used for operations in the Bits package. The following options are available:
 • defaultbits = integer: Specifies the number of bits to use for an operation when bits is not explicitly specified for the input. This is useful for emulation of machine logic operations, where one could set defaultbits to 32 or 64. Currently a bits setting is required for all negative numbers, the negated logic operations Not and Nand, and the operations Split and String.

If no bit count is specified, commands that require a bit count use the most significant bit in all inputs by default.

 • negative = keyword: where keyword is twoscomplement (the default), none or ignore. When set to twoscomplement, all negative numbers are treated in twoscomplement form. When set to none, negative inputs produce an error. When set to ignore, negative inputs are treated simply as though the positive input was provided (signs are ignored).
 • negativeout = true/false: By default this is false, and when set to true it specifies that negative outputs are desired. For this to be allowed, the bits for the operation must be set and negative must be set to twoscomplement (as otherwise there is no way to represent a negative output).
 • Note that the negative and negativeout options do not apply to the output of Split or the input of Join, both of which use sequences of positive numbers only.
 • all: This is a query-only option, and can be used to query all current settings.

Examples

 > $\mathrm{with}\left(\mathrm{Bits}\right):$

By default, this operates on 0 bits, as the input number has 0 bits

 > $\mathrm{Not}\left(0\right)$
 ${0}$ (1)

Setting the default tells how many bits to use

 > $\mathrm{Settings}\left(\mathrm{defaultbits}=4\right):$
 > $\mathrm{Not}\left(0\right)$
 ${15}$ (2)
 > $\mathrm{Settings}\left(\mathrm{defaultbits}=8\right):$
 > $\mathrm{Not}\left(0\right)$
 ${255}$ (3)

Default is overridden by bits specification

 > $\mathrm{Not}\left(0,\mathrm{bits}=4\right)$
 ${15}$ (4)

Negative input

 > $\mathrm{Not}\left(-1\right)$
 ${0}$ (5)

Also with negative output

 > $\mathrm{Settings}\left(\mathrm{negativeout}=\mathrm{true}\right):$
 > $\mathrm{Not}\left(0\right)$
 ${-}{1}$ (6)