Datentypen gibt es seit Urzeiten und deren Speicherbedarf ist genauso festgelegt wie die dazugehörigen Bytesequenzen.
Dass man in den meisten Programmiersprachen den Speicherbedarf und die konkrete Binärdarstellung von Zahlentypen festlegt ist eine rein praktische Entscheidung. Die Befehlssätze von Prozessoren sind dafür ausgelegt mit Binärzahlen fester Länge zu rechnen.
Das heißt aber nicht, dass unsere Computer ausschließlich mit Maschinenzahlen rechnen können. In der Theorie existiert so eine Beschränkung nicht. Man kann auch Programme schreiben, die mit den „echten“ abstrakten Zahlen, die uns aus der Mathematik bekannt sind, rechnen; also zum Beispiel die natürlichen Zahlen ℕ, die rationalen Zahlen ℚ, oder die komplexen Zahlen ℂ. Für die exakten Rechnungen mit diesen Datentypen stehen uns aber keine direkten Prozessor-Befehle zur Verfügung. Die Algorithmen für die Grundrechenarten müssen also Software-seitig programmiert werden und sind komplexer als die Hardware-Lösungen.
Das ist eine Tradeoff-Entscheidung: Rechnen mit abstrakten Zahlen ist (unvermeidbar) langsamer als das Rechnen mit Maschinenzahlen, aber dafür sind die Rechnungen exakt und nicht nur Annäherungen an die gewollte Lösung.
Für das exakte Rechnen mit abstrakten Zahlen ist es nicht erforderlich und auch gar nicht möglich vorher ein Hardware-nahes Speicherlayout festzulegen. Stattdessen muss man wissen, wie man Zahlentypen sofwareseitig kodiert. Die theoretischen Grundlagen dafür haben uns Alonzo Church und seine Studenten mit dem sogenannten Church Encoding bereitet. Auf Churchs Arbeit basiert übrigens auch unsere moderne Auffassung von abstrakten Datentypen. Haskell ist eine Programmiersprache, die im wesentlichen genau auf dieser Theorie beruht und mit abstrakten Zahlen rechnen kann.
Das Wichtigste beim Programmieren ist eine abstrakte Denkweise.
Du versuchst Abstraktes in eine konkrete Form zu pressen - an diesem Beispiel wird das besonders deutlich: Du reduzierst mathematische Operationen auf ihr Speicherlayout. Dabei gehen aber Eigenschaften verloren, die im abstrakten Setting gelten und im konkreten nicht. Du wendest selber noch nicht an, was du als das "Wichtigste beim Programmieren" bezeichnest.