Giter VIP home page Giter VIP logo

doubdabc's Introduction

DoubDabC

Java CI with Maven CodeQL


What is DoubDabC ?

  • DoubDabC is a Java library that supports binary integer value to decimal sequence conversion with alternative algorithm.

  • Yes, it will substitute implementations such as Integer.toString(int) and so on.

DoubDabC implementation

  • DoubDabC implements Double-Dabble algorithm aka Shift-and-add-3. Double-Dabble is a radix-conversion algorithm but there is no division(/) nor remainder(%) operation. It's a bit fast.

  • There is no String constructor during conversion. That means, GC-friendry !

Supported Input

  • DoubDabC has a pseudo register of the size you specified. You can put N-bit bool, int, long, BitSet, or BigInteger as binary integer value.

  • Let's try to put a huge Mersenne prime like 2^32582657 -1. Overflow ? OK, don't worry. Just losing higher decimals over you specified.

Supported Output

  • You can get each decimal number column result by int or int[] array.

  • You can assign Appendable, Writer, StringBuffer, StringBuilder, or CharBuffer as Arabic numeral characters(0-9) sequence output.

  • CharSequence wrapper class is provided.

Limitations

  • DoubDabC does not support negative values. Signed-values are treated as Unsigned-value like Integer.toUnsignedString(int). Let's convert absolute value that follows minus(-) sign.

What is the difference with JarabraDix ?

  • If you use binary integer value that fit in 'long' or 'int', and you have modern JVM and CPU that supports fast integer division, let's try JarabraDix.

How to build

  • DoubDabC needs to use Maven 3.3.9+ and JDK 1.8+ to be built.

  • DoubDabC runtime does not depend on any other library at all. Just compile Java sources under src/main/java/ if you don't use Maven.

License

Project founder

Key technology

--- EOF ---

doubdabc's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar olyutorskii avatar

Stargazers

 avatar

Watchers

 avatar  avatar

doubdabc's Issues

Setup Git Config

Before anything else, push

  • ignore list
  • encoding list

for Git.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.