Ersteinmal heiße ich dich hier im Forum herzlich Willkommen!
Nun zu deiner Frage:
Wie du richtig erkannt hast, werden die ganzen Variablen in deinem Programm (genau wie das gesamte Programm an sich) im Arbeitsspeicher abgelegt. Der Arbeitsspeicher besteht aus einzelnen Bytes, in denen Zahlen gespeichert werden können und auf die der Prozessor zugreifen kann. Wie diese Zahlen interpretiert werden sollen -- also welchen Sinn sie haben -- ist von vornherein nicht festgelegt. Das könnte Programmcode sein, der vom Prozessor direkt ausgeführt werden kann, weil er die Bedeutung der Zahlen kennt. Das könnte zum Beispiel der Befehl "Addiere 5 und 3" sein. Für das "Addiere" gibt es also einen entsprechenden Zahlencode.
Wie die Zahlen 3 und 5 im Speicher abgelegt werden müssen, ist auch festgelegt.
Gleiches gilt auch für Zeichenketten (mehrere Zeichen hintereinander; engl. String). Dabei unterscheiden sich Zeichenketten und Zahlen voneinander. So steht die Zeichenkette "12" für die Zahl Zwölf -- sie ist es aber nicht. Deshalb muss die Zeichenkette mit der Funktion
StrToInt() konvertieren um die Zahl zu erhalten.
Das gilt auch ausnahmslos für alle anderen Programmiersprachen. Teilweise erledigen diese das aber auch ohne dein Zutun (also ohne dass du eine Funktion aufrufen musst).