about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorDaniel Santos <dacs.git@brilhante.top>2022-03-12 19:46:44 +0000
committerDaniel Santos <dacs.git@brilhante.top>2022-03-13 14:21:26 +0000
commitf44be5f3b46244e66e728238585d3691dae6281d (patch)
treee826416e652d3e52ee99a7e74badc2e16dd5846b
parent5d7cabc4208096685d8585c6bda1ddde488bbceb (diff)
downloadnumericx-c-f44be5f3b46244e66e728238585d3691dae6281d.tar.gz
create README.md
Signed-off-by: Daniel Santos <dacs.git@brilhante.top>
-rw-r--r--README.md64
1 files changed, 64 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7dce8f3
--- /dev/null
+++ b/README.md
@@ -0,0 +1,64 @@
+# Numericx
+
+A console 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 infinte 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:
+```
+c99 -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. That 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. To use the TO flags, just switch `FROM_` to `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.
+
+## License
+
+MIT
+
+## Author
+
+Daniel A. C. Santos