org.apache.poi.ss.formula.functions

## Class Dec2Bin

- java.lang.Object
- - org.apache.poi.ss.formula.functions.Dec2Bin

- All Implemented Interfaces:
    FreeRefFunction, Function, Function1Arg, Function2Arg

      public class Dec2Bin
      extends java.lang.Object
      implements FreeRefFunction

  Implementation for Excel Bin2Dec() function.

  Syntax:
  Bin2Dec (number,[places] )

  Converts a decimal number to binary.

  The DEC2BIN function syntax has the following arguments:

  - Number Required. The decimal integer you want to convert. If number is negative, valid place values are ignored and DEC2BIN returns a 10-character (10-bit) binary number in which the most significant bit is the sign bit. The remaining 9 bits are magnitude bits. Negative numbers are represented using two's-complement notation.
  - Places Optional. The number of characters to use. If places is omitted, DEC2BIN uses the minimum number of characters necessary. Places is useful for padding the return value with leading 0s (zeros).

  Remarks

  - If number < -512 or if number > 511, DEC2BIN returns the #NUM! error value.
  - If number is nonnumeric, DEC2BIN returns the #VALUE! error value.
  - If DEC2BIN requires more than places characters, it returns the #NUM! error value.
  - If places is not an integer, it is truncated.
  - If places is nonnumeric, DEC2BIN returns the #VALUE! error value.
  - If places is zero or negative, DEC2BIN returns the #NUM! error value.
  Author:
    cedric dot walter @ gmail dot com

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static FreeRefFunction` | `instance`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Dec2Bin()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ValueEval` | `evaluate(int srcRowIndex, int srcColumnIndex, ValueEval numberVE)` see `Function.evaluate(ValueEval[], int, int)`
    `ValueEval` | `evaluate(int srcRowIndex, int srcColumnIndex, ValueEval numberVE, ValueEval placesVE)` see `Function.evaluate(ValueEval[], int, int)`
    `ValueEval` | `evaluate(ValueEval[] args, int srcRowIndex, int srcColumnIndex)`
    `ValueEval` | `evaluate(ValueEval[] args, OperationEvaluationContext ec)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### instance

          public static final FreeRefFunction instance

  - ### Constructor Detail

    - #### Dec2Bin

          public Dec2Bin()

  - ### Method Detail

    - #### evaluate

          public ValueEval evaluate(int srcRowIndex,
                                    int srcColumnIndex,
                                    ValueEval numberVE,
                                    ValueEval placesVE)

      Description copied from interface: `Function2Arg`
      see `Function.evaluate(ValueEval[], int, int)`
      Specified by:
        `evaluate` in interface `Function2Arg`

    - #### evaluate

          public ValueEval evaluate(int srcRowIndex,
                                    int srcColumnIndex,
                                    ValueEval numberVE)

      Description copied from interface: `Function1Arg`
      see `Function.evaluate(ValueEval[], int, int)`
      Specified by:
        `evaluate` in interface `Function1Arg`

    - #### evaluate

          public ValueEval evaluate(ValueEval[] args,
                                    OperationEvaluationContext ec)

      Specified by:
        `evaluate` in interface `FreeRefFunction`
      Parameters:
        `args` - the pre-evaluated arguments for this function. args is never `null`, nor are any of its elements.
        `ec` - primarily used to identify the source cell containing the formula being evaluated. may also be used to dynamically create reference evals.
      Returns:
        never `null`. Possibly an instance of `ErrorEval` in the case of a specified Excel error (Exceptions are never thrown to represent Excel errors).

    - #### evaluate

          public final ValueEval evaluate(ValueEval[] args,
                                          int srcRowIndex,
                                          int srcColumnIndex)

      Specified by:
        `evaluate` in interface `Function`
      Parameters:
        `args` - the evaluated function arguments. Empty values are represented with `BlankEval` or `MissingArgEval`, never `null`.
        `srcRowIndex` - row index of the cell containing the formula under evaluation
        `srcColumnIndex` - column index of the cell containing the formula under evaluation
      Returns:
        The evaluated result, possibly an `ErrorEval`, never `null`. Note - Excel uses the error code #NUM! instead of IEEE NaN, so when numeric functions evaluate to `Double.NaN` be sure to translate the result to `ErrorEval.NUM_ERROR`.

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.