Class ConvertingNumbers


  • public class ConvertingNumbers
    extends Object
    Die Klasse ConvertingNumbers enthält Methoden zum Umwandeln von Zahlen mit verschiedenen Zahlensystemen.

    Die Methoden dieser Klasse können sowohl ganze Zahlen als auch Kommazahlen mit positiven oder negativen Wert umwandeln. Es werden beliebige Zahlensysteme von der Basis 2 bis zur Basis 36 unterstützt, was dem Zeichenvorrat 0-9 und A-Z entspricht. In der String-Darstellung können Zahlen mit Ziffern, Großbuchstaben und Kleinbuchstaben an die Methoden dieser Klasse übergeben werden, allerdings enthalten die Rückgaben in der String-Darstellung aller Methoden ausschließlich Zahlen und Großbuchstaben.

    Das Komma-Zeichen kann mit der Klasse Preferences auf Deutsch (,) oder Englisch (.) eingestellt werden. Ebenso kann der Indikator für abgeschnittene Nachkommastellen (...) aktiviert oder deaktiviert werden.

    Since:
    Bitchanger 0.1.0
    Version:
    1.0.2
    Author:
    Tim Mühle, Moritz Wolter
    See Also:
    Preferences
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String FRACTIONAL_PRECISION_INDICATOR
      Indikator für Abgeschnittene Nachkommastellen bei der Umwandlung vom Zehnersystem in ein anderes, beliebiges Zahlensystem
      static int MAX_BASE
      Eine Konstante für die größtmögliche Basis bei einem Zeichenvorrat von 0-9 und A-Z
      static int MIN_BASE
      Eine Konstante für die kleinstmögliche Basis
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static String baseToDecString​(int base, String value)
      Wandelt die übergebene Zahl value zur beliebigen Basis base in eine Zahl zur Basis 10 in der String-Darstellung um.
      static String baseToDecString​(int base, String value, char comma)
      Wandelt die übergebene Zahl value zur beliebigen Basis base in eine Zahl zur Basis 10 in der String-Darstellung um.
      static String baseToDecString​(int base, String value, char comma, Queue<ConversionStep> calcPath)
      Wandelt die übergebene Zahl value zur beliebigen Basis base in eine Zahl zur Basis 10 in der String-Darstellung um.
      static String decToBase​(int newBase, String decValue)
      Wandelt die übergebene Zahl decValue zur Basis 10 in eine Zahl zur beliebigen Basis newBase in der String-Darstellung um.
      static String decToBase​(int newBase, String decValue, char comma)
      Wandelt die übergebene Zahl decValue zur Basis 10 in eine Zahl zur beliebigen Basis newBase in der String-Darstellung um.
      static String decToBase​(int newBase, String decValue, char comma, int fractionalPrecision)
      Wandelt die übergebene Zahl decValue zur Basis 10 in eine Zahl zur beliebigen Basis newBase in der String-Darstellung um.
      static String decToBase​(int newBase, String decValue, char comma, int fractionalPrecision, Queue<ConversionStep> calcPath)
      Wandelt die übergebene Zahl decValue zur Basis 10 in eine Zahl zur beliebigen Basis newBase in der String-Darstellung um.
      static String decToBaseBlocks​(int newBase, String decValue, char comma, int blockSize)
      Wandelt die übergebene Zahl decValue zur Basis 10 in eine Zahl zur beliebigen Basis newBase in der String-Darstellung um und unterteilt die Zahl in Blöcke der gewünschten Länge.
      static String doubleToString​(double d)  
      static boolean isValueToBase​(int base, String value)
      Prüft, ob value eine Zahl zur geforderten Basis base repräsentiert.
      static String splitInBlocks​(int base, String value)
      Unterteilt den übergebenen String in Blöcke mit einer Länge von 4 Zeichen für binäre und hexadezimale Zahlen oder 3 Zeichen für alle anderen Zahlensysteme
      static String splitInBlocks​(String value, int blockSize)
      Unterteilt den übergebenen String in Blöcke mit der gegebenen Länge, beispielsweise zur Tausendertrennung
    • Field Detail

      • MIN_BASE

        public static final int MIN_BASE
        Eine Konstante für die kleinstmögliche Basis
        See Also:
        Constant Field Values
      • MAX_BASE

        public static final int MAX_BASE
        Eine Konstante für die größtmögliche Basis bei einem Zeichenvorrat von 0-9 und A-Z
        See Also:
        Constant Field Values
      • FRACTIONAL_PRECISION_INDICATOR

        public static final String FRACTIONAL_PRECISION_INDICATOR
        Indikator für Abgeschnittene Nachkommastellen bei der Umwandlung vom Zehnersystem in ein anderes, beliebiges Zahlensystem
        See Also:
        Constant Field Values
    • Method Detail

      • isValueToBase

        public static boolean isValueToBase​(int base,
                                            String value)
                                     throws IllegalArgumentException
        Prüft, ob value eine Zahl zur geforderten Basis base repräsentiert. Ist der Indikator für abgeschnittene Nachkommastellen aktiviert, wird dieser bei der Auswertung ignoriert. Leerzeichen können als Tausender-Trennung verwendet werden und werden von dieser Methode ebenfalls ignoriert.
        Parameters:
        value - zu prüfende Zahl repräsentiert als String
        base - geforderte Basis von value - erlaubt sind nur Werte von 2 bis 36 (einschließlich)
        Returns:
        true, wenn value eine Zahl zur geforderten Basis base repräsentiert, andernfalls wird false zurückgegeben
        Throws:
        IllegalArgumentException - wenn basis den Wertebereich [2, 36] verlässt
      • doubleToString

        public static String doubleToString​(double d)
      • decToBase

        public static String decToBase​(int newBase,
                                       String decValue)
                                throws NullPointerException,
                                       NumberFormatException,
                                       NumberOverflowException
        Wandelt die übergebene Zahl decValue zur Basis 10 in eine Zahl zur beliebigen Basis newBase in der String-Darstellung um.

        Wenn in der Klasse Preferences der Indikator für Nachkommastellen aktiviert ist, werden die wegen der maximalen Anzahl von Nachkommastellen abgeschnittenen Nachkommastellen durch "..." angedeutet.

        Parameters:
        newBase - Basis des neuen Zahlensystems, in das die Zahl decValue umgewandelt werden soll
        decValue - Wert der Zahl im Zehnersystem in der String-Darstellung
        Returns:
        umgewandelte Zahl zur übergebenen Basis in der String-Darstellung mit dem standardmäßig eingestellten Komma
        Throws:
        NullPointerException - wenn der Parameter decValue null ist
        NumberFormatException - wenn der Parameter decValue keine Zahl zur Basis 10 ist
        IllegalArgumentException - wenn decValue ein leerer String ist oder wenn newBase den Wertebereich [2, 36] verlässt   -   see isValueToBase(int,java.lang.String)
        NumberOverflowException - wenn der Wert von value größer oder kleiner ist als +/- Long.MAX_VALUE
        See Also:
        Preferences
      • decToBase

        public static String decToBase​(int newBase,
                                       String decValue,
                                       char comma)
                                throws NullPointerException,
                                       NumberFormatException,
                                       IllegalArgumentException,
                                       NumberOverflowException
        Wandelt die übergebene Zahl decValue zur Basis 10 in eine Zahl zur beliebigen Basis newBase in der String-Darstellung um.

        Wenn in der Klasse Preferences der Indikator für Nachkommastellen aktiviert ist, werden die wegen der maximalen Anzahl von Nachkommastellen abgeschnittenen Nachkommastellen durch "..." angedeutet.

        Parameters:
        newBase - Basis des neuen Zahlensystems, in das die Zahl decValue umgewandelt werden soll
        decValue - Wert der Zahl im Zehnersystem in der String-Darstellung
        comma - das Zeichen, welches als Komma in Gleitpunktzahlen verwendet wird
        Returns:
        umgewandelte Zahl zur übergebenen Basis in der String-Darstellung mit maximal 15 Nachkommastellen
        Throws:
        NullPointerException - wenn der Parameter decValue null ist
        NumberFormatException - wenn der Parameter decValue keine Zahl zur Basis 10 ist
        IllegalArgumentException - wenn decValue ein leerer String ist oder wenn newBase den Wertebereich [2, 36] verlässt   -   see isValueToBase(int,java.lang.String)
        NumberOverflowException - wenn der Wert von value größer oder kleiner ist als +/- Long.MAX_VALUE
        See Also:
        Preferences
      • splitInBlocks

        public static String splitInBlocks​(String value,
                                           int blockSize)
        Unterteilt den übergebenen String in Blöcke mit der gegebenen Länge, beispielsweise zur Tausendertrennung
        Parameters:
        value - String, der aufgeteilt wird
        blockSize - Länge der Blöcke
        Returns:
        Aufgeteilter String mit Blöcken
        Since:
        Bitchanger 0.1.4
      • splitInBlocks

        public static String splitInBlocks​(int base,
                                           String value)
        Unterteilt den übergebenen String in Blöcke mit einer Länge von 4 Zeichen für binäre und hexadezimale Zahlen oder 3 Zeichen für alle anderen Zahlensysteme
        Parameters:
        base - Basis von value
        value - String, der aufgeteilt wird
        Returns:
        Aufgeteilter String mit Blöcken
        Since:
        Bitchanger 0.1.8