https://medium.com/@indradeephalder/day-10-advanced-techniques-bitwise-operations-and-preprocessor-directives-3846772c6812