https://medium.com/@sandaru.jayawardana/numeric-representations-in-computer-programming-languages-part-i-integers-c3aa177d7e5b