com.singularsys.jep.misc.functions
Class ToBase

java.lang.Object
  extended by com.singularsys.jep.functions.PostfixMathCommand
      extended by com.singularsys.jep.misc.functions.ToBase
All Implemented Interfaces:
PostfixMathCommandI, java.io.Serializable

public class ToBase
extends PostfixMathCommand

Convert a number to a string in a given base. The base to used is specified in the constructor

A prefix can be specified in the constructor. If set this will be appended to the number (after minus sign for negative values). For example with the following setup

 jep.addFunction("toBase",new ToBase());
 jep.addFunction("toDec",new ToBase(10));
 jep.addFunction("toHex",new ToBase(16,"0x"));

A prefix can be specified in the constructor. If set this will be appended to the number (after minus sign for negative values).

Author:
Rich Morris Created on 02-May-2005
See Also:
Long.toString(long, int), Serialized Form

Field Summary
 
Fields inherited from class com.singularsys.jep.functions.PostfixMathCommand
curNumberOfParameters, name, NaN, numberOfParameters
 
Constructor Summary
ToBase()
          Constructor where base is specified as a function argument.
ToBase(int base)
          Constructor with specified base.
ToBase(int base, java.lang.String prefix)
          Constructor with specified base and a given prefix.
 
Method Summary
 boolean checkNumberOfParameters(int n)
          Checks the number of parameters of the function.
 void run(java.util.Stack<java.lang.Object> s)
          Run the function on the stack.
 java.lang.String toBase(double val, int base, int digits)
          Converts a number to a give base.
 java.lang.String toBase(long num, int base)
          Converts a number to a give base.
 
Methods inherited from class com.singularsys.jep.functions.PostfixMathCommand
asArray, asBool, asDouble, asInt, asLong, asStrictInt, asString, checkStack, getName, getNumberOfParameters, setCurNumberOfParameters, setName, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ToBase

public ToBase()
Constructor where base is specified as a function argument.


ToBase

public ToBase(int base)
Constructor with specified base.

Parameters:
base - the base to use
Throws:
java.lang.IllegalArgumentException - if base is < 2 or > 36

ToBase

public ToBase(int base,
              java.lang.String prefix)
Constructor with specified base and a given prefix. For example 0x to proceed hexadecimal numbers.

Parameters:
base - the base to use
prefix - the string to prefix numbers with.
Throws:
java.lang.IllegalArgumentException - if base is < 2 or > 36
Method Detail

checkNumberOfParameters

public boolean checkNumberOfParameters(int n)
Description copied from class: PostfixMathCommand
Checks the number of parameters of the function. Functions which set numberOfParameter=-1 should overload this method

Specified by:
checkNumberOfParameters in interface PostfixMathCommandI
Overrides:
checkNumberOfParameters in class PostfixMathCommand
Parameters:
n - number of parameters function will be called with.
Returns:
false if an illegal number of parameters is supplied, true otherwise.

run

public void run(java.util.Stack<java.lang.Object> s)
         throws EvaluationException
Description copied from interface: PostfixMathCommandI
Run the function on the stack. Pops the arguments from the stack, and pushes the result on the top of the stack.

Throws:
EvaluationException

toBase

public java.lang.String toBase(long num,
                               int base)
Converts a number to a give base.

Parameters:
num - number to convert
base - base to use
Returns:
String representation
Throws:
java.lang.IllegalArgumentException - if base is < 2 or > 36

toBase

public java.lang.String toBase(double val,
                               int base,
                               int digits)
Converts a number to a give base.

Parameters:
val - number to convert
base - base to use
digits - number of digits after decimal place
Returns:
String representation
Throws:
java.lang.IllegalArgumentException - if base is < 2 or > 36


Copyright © 2010 Singular Systems http://www.singularsys.com/jep