Translate a number from any numerical system into any numerical system
Go to file
Daniel Santos dc910012f9 Makefile: include header file in install-lib
* install numericx.h with Makefile rule install-lib

Signed-off-by: Daniel Santos <dacs.git@brilhante.top>
2022-03-19 10:20:24 +00:00
doc@777bc1352f move between files numeral_ptr struct 2022-03-19 10:01:12 +00:00
tests test rule in Makefile 2022-03-15 14:34:39 +00:00
.gitignore update gitignore 2022-03-18 21:59:09 +00:00
.gitmodules add submodule doc/ 2022-03-16 16:49:37 +00:00
Doxyfile rename doxygen.conf to Doxyfile 2022-03-16 21:39:09 +00:00
LICENSE add MIT license 2022-03-11 19:28:35 +00:00
Makefile Makefile: include header file in install-lib 2022-03-19 10:20:24 +00:00
README.md README.md change c compiler text 2022-03-18 20:55:41 +00:00
cli.c replace PROG_NAME with "numericx" literal 2022-03-19 07:43:14 +00:00
html add html symlink for doxygen build 2022-03-16 20:01:12 +00:00
numericx.c move between files numeral_ptr struct 2022-03-19 10:01:12 +00:00
numericx.h move between files numeral_ptr struct 2022-03-19 10:01:12 +00:00

README.md

Numericx Readme

A command-line interface (CLI) program that converts a number (or text) from one numerical system into another different numerical system.

Compiling

This program create an executable (or many) that will convert a number from one numerical system into another one.

For example, you may want to convert a hexadecimal number into a ternary number. You may use this program.

You first need to define the proprieties of the numerical systems. These proprieties are defined in the compilation process (as compilation flags).

For example, let's make the hexdecimal numerical system with numerals from 0-f, with a infinite 0 and it start counting on 1. So, our hexadecimal system will need the following compilation flags:

-DFROM_NUMERICALS=\"0123456789abcdef\" -DFROM_FIRST_NUMBER_VOID -DFROM_INFINITE_BASE

if you want the units place of this numerical system to be on the right side, add -DFROM_UNITS_ON_THE_END.

Now, for the ternary system let's make with numerals from 1-3, 1 is not infinite and it start counting on 1. Use this flags:

-DTO_NUMERICALS=\"123\"

if you want the units place of this numerical system to be on the right side, use -DTO_UNITS_ON_THE_END.

Now, to create the executable to translate a number for these two numerical system, join all of this together and compile using this:

$ cc -DFROM_NUMERICALS=\"0123456789abcdef\" -DFROM_FIRST_NUMBER_VOID -DFROM_INFINITE_BASE -DFROM_UNITS_ON_THE_END -DTO_NUMERICALS=\"123\" -DTO_UNITS_ON_THE_END numericx.c -o hex-to-ternary

This creates the hex-to-ternary executable with can be used to convert numbers from hexadecimal to ternary!

Pre-defined executable compilation

There are many pre-defined compilation of executables on the Makefile. Take a look at the Makefile to know them. Or you can run make to get all of the pre-defined executables. make clean to delete them.

Compilation flags meanings

There are two categories for the compilation flags: the FROM category and the TO category.

FROM flags are the numerical system definitions of the argument number.

TO flags are the numerical system definitions of the number result.

Below, are the meanings of the FROM flags. The TO flags are the same as the FROM flags, with a switch of the FROM_ to a TO_.

Flag Meaning
FROM_NUMERALS Define the numerical system numerals of the 'from'
FROM_UNITS_ON_THE_END Defines the units case to be on the end (on the right) for the 'from'
FROM_FIRST_NUMBER_VOID Defines the first number as a "not counting" for the 'from'
FROM_INFINITE_BASE Defines the first number to be infinite, for the 'from' (for example, if the first numeral is 0, then 0 == 00 == 000 == 0000 ... . Or if the first numeral is 1, then 1 == 11 == 111 ...)

There is also the DEBUG flag, which will show all the steps that you number walked through. Remember: you use -DDEBUG as an compiler argument.

Documentation

See numericx documentation page. Look at Files > File List in the documentation menubar website.

License

MIT

Author

Daniel A. C. Santos