Class NumberFormatter

java.lang.Object
com.pnfsoftware.jeb.core.units.code.asm.render.NumberFormatter

@Ser public class NumberFormatter extends Object
A number formatter used to format immediates.

Notes:

  • max 64-bit long
  • signedness: applicable to octal/decimal/hexadecimal, N/A for binary/ascii
See Also:
  • Constructor Details

    • NumberFormatter

      public NumberFormatter()
    • NumberFormatter

      public NumberFormatter(NumberFormatter defaultNumberFormatter)
      Parameters:
      defaultNumberFormatter -
  • Method Details

    • getBase

      public NumberFormatter.NumberBase getBase()
    • setBase

      public void setBase(NumberFormatter.NumberBase base)
    • rotateBase

      public NumberFormatter.NumberBase rotateBase()
    • setSignedNumber

      public void setSignedNumber(boolean signedNumber)
    • isSignedNumber

      public boolean isSignedNumber()
    • setHexaNotationType

      public void setHexaNotationType(NumberFormatter.HexaNotationType hexaNotationType)
    • getHexaNotationType

      public NumberFormatter.HexaNotationType getHexaNotationType()
    • getEndianness

      public Endianness getEndianness()
      Retrieve endianness. Use
      Returns:
      endianness
    • setEndianness

      public void setEndianness(Endianness endianness)
      Change endianness. Note that default NumberFormatter consider that data is Little Endian ordered (meaning that ascii representation will be flipped in comparison to raw value).
      Parameters:
      endianness -
    • setConstantsFormatterOverride

      public void setConstantsFormatterOverride(ConstantsFormatter cf)
    • hasConstantsFormatterOverride

      public boolean hasConstantsFormatterOverride()
    • setForcePositiveRenderingForNonBase10

      public void setForcePositiveRenderingForNonBase10(boolean enabled)
    • getForcePositiveRenderingForNonBase10

      public boolean getForcePositiveRenderingForNonBase10()
    • format

      public String format(int bitsize, long rawValue)
      Format a number using the formatter's current settings.
    • format

      public String format(int bitsize, long rawValue, NumberFormatter.NumberBase base, boolean treatAsSignedNumber)
    • format

      public String format(int bitsize, BigInteger rawValue)
    • format

      public String format(int bitsize, BigInteger rawValue, NumberFormatter.NumberBase base, boolean treatAsSignedNumber)
      Trivial implementation of a BigInteger formatter. Reverts to using format(int, long, NumberBase, boolean) if bitsize is <= 64.
      Parameters:
      bitsize -
      rawValue -
      base -
      treatAsSignedNumber -
      Returns: