Wozu braucht man Integerberechnungen?

Na die FloatingPoint-ALU macht es ja "auf binäre Art", anders geht es ja nicht.
Dass Ganzzahlen nicht durch Gleitkommazahloperationen berechnet werden, stellt ja niemand in den Raum, den Punkt können wir also aussen vorlassen.
Fehlt nur noch Gleitkommazahlen durch Ganzzahloperationen:
Natürlich gäbe es die Möglichkeit dieses über eine Software-Implementation mit Ganzzahloperationen zu bestimmen, aber der Aufwand dafür ist eben so hoch, dass es absolut keinen Sinn macht, weil hardwareseitig ja schon Gleitkomma-Rechenwerk existiert.
 
Es liegt halt im Endeffekt daran wie Ergebnis der Umwandlung in den Maschinencode geschieht. In bestimmten Rechnerarchitekturen macht es z.B. Sinn sowas zu "erzwingen", da einfach viel mehr Recheneinheiten für eine Ganzzahloperation zur Verfügung stehen.
Aber da kann man wahrscheinlich viel drüber diskutieren...
 
Bauergiesen schrieb:
Wie genau der Prozessor die Berechnung vornimmt hat doch wohl nicht direkt mit der Programmierung zutun - nur weil man als Variable einen Integer oder einen Float benutzt, muss nicht zwangsläuft als Maschinencode eine Integer bzw Floatberechnung von der CPU geleistet werden...

Wie der Prozessor etwas berechnet hängt vom Befehlssatz und den Registern zusammen.
Wenn der Prozessor z.B. keinen Befehl fürs Multiplizieren kennt, muss er halt addieren. Bei 3 * 10000 würde er eben binär ne 10000 abbilden und die dann 3x addieren. Wenn er nicht subtrahieren kann, wird er es auch über Addition lösen (Ja, man kann subtrahieren indem man addiert).
Wenn man ne Kommazahl in ein 64-Bit-Register schreibt und dann 0,1028934 hinzuaddieren will, dann wird der Prozessor das ganze wieder in ganze Zahlen zerlegen, addieren und dann wieder in ne Kommazahl zurückwandeln. Wie genau er das macht, wie umständlich oder effizient, liegt daran ob er nen entsprechenden Befehlssatz hat oder nicht, bzw. ne passenden Coprozessor oder eben keinen.
Fakt ist aber nun mal dass alles in 0 und 1 im Binärsystem zerlegt werden muss. Und dieses System bildet Ganzzahlen ab (1,2,4,8,16,32, etc. pp.)
 
Zurück
Oben