Wie rechnet ein Taschenrechner?

  • Ich würde gerne mal wissen, wie ein Taschenrechner rechnet. Welche Schritte müssen ausgeführt werden, um zb 2*3 zu rechnen? Wie berechnet er cos(77.12)? Wie wandelt er Dezimalzahlen (also den Input/Output) in Binärzahlen um?


    Leider habe ich im INet nichts brauchbares gefunden. Kann mir da jemand weiterhelfen? Kennt wer einen Link? Danke


    Cu wirz

  • Also ich würde mal sagen da ein Taschenrechner eine Maschine ist rechnet er nur mit 0 und 1.
    Also Rechenart wird er nur Addition kennen.

    Jedem seins .

  • Zitat

    Original geschrieben von Tera9
    Also ich würde mal sagen da ein Taschenrechner eine Maschine ist rechnet er nur mit 0 und 1.
    Also Rechenart wird er nur Addition kennen.


    Subtrahieren kann er auch, Multiplikation bzw. Division werden auf Mehrfachaddition bzw. -Subtraktion zurückgeführt.
    Desweiteren sind da verschiedene Register (=Speicherplätze) drin, die mit binärcodierten Hex-Zahlen arbeiten.

  • Zitat

    Original geschrieben von boener


    Subtrahieren kann er auch, Multiplikation bzw. Division werden auf Mehrfachaddition bzw. -Subtraktion zurückgeführt.


    Subtraktion ist auch nur Addition.

    Jedem seins .

  • Schau Dir das Skript (hier als PDF File, 3,3 MB) aus der Vorlesung "Grundlagen der Informationsverarbeitung" (Uni-Do) an. Das dürfte für den ersten Einblick in "das Innere einer Maschine" (bzw. eines Taschenrechner) reichen...

    mfg supersiggi

  • Edit: Nur zwei neue Postings während meiner Tipperei? ;) ... Aber nun, egal:


    Bei einer Binärzahl steht jede Stelle für eine Zweierpotenz (genau so wie im Dezimalsystem jede Stelle für eine Zehnerpotenz steht).


    Also 123 (dezimal) ist z.B. 1 * 10^2 + 2 * 10^1 + 3 * 10^0 = 100 + 20 + 3 = 123.


    Dementsprechend ist 01111011 (binär) 0 * 2^7 + 1 * 2^6 + 1 * 2^5 + 1 * 2^4 + 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 0 + 64 + 32 + 16 + 8 + 0 + 2 + 1 = 123.


    Von dezimal in binär wandelst Du am einfachsten um, in dem du mit der größten vorkommenden Zweierpotenz anfängst (bei 8 bit wäre das 128). Wenn dieser Wert in dein Zwischenergebnis "reinpaßt" ziehst du ihn ab und notierst dir eine binäre 1, wenn nicht schreibst du dir eine 0 auf. Dann machst du mit der nächst niedrigereren Zweierpotenz weiter. Alles klar? :D Gut, ein Beispiel:

    Code
    123 (dezimal). 2^7 = 128? paßt nicht -> 0
    2^6 = 64? paßt -> 1, es bleibt 123 - 64 = 59.
    2^5 = 32? paßt -> 1, es bleibt 59 - 32 = 27.
    2^4 = 16? paßt -> 1, es bleibt 27 - 16 = 11.
    2^3 = 8? paßt -> 1, es bleibt 11 - 8 = 3.
    2^2 = 4? paßt nicht -> 0
    2^1 = 2? paßt -> 1, es bleibt 3 - 2 = 1.
    2^0 = 1? paßt -> 1, es bleibt 1 - 1 = 0.
    Von oben nach unten geschrieben ist 123 (dezimal) also 01111011 (binär).


    Wer hätte das gedacht? (Jeder, denn schließlich habe ich die Zahl oben ja schon mal hingeschrieben... :D)


    Addition ist im Prinzip genauso wie im Dezimalen, wenn du die zwei Zahlen untereinander schreibst und addierst: stellenweise von dem niedrigsten zum höchsten Wert, und mit Übertrag. 0+0 ist 0, 0+1 ist 1 und 1+1 ist 10.


    Subtraktion = Addition... Und zwar mit dem Zweierkomplement (Zahl invertieren und 1 dazuaddieren):



    Eine Multiplikation würde z.B. so aussehen (in 6-bit Schreibweise, Ergebnis bis zu 12bit):



    Nachkommazahlen werden auf Taschenrechnern üblicherweise im Mantisse-Exponent Verfahren angegeben - z.B. Genauigkeit auf 12 Stellen (Mantisse), das ganze wird mit 10^dem Exponenten multipliziert. Bei der Multiplikation zweier Zahlen werden die Exponenten wie oben addiert und die Mantisse (wahrscheinlich) bitweise multipliziert.


    Hier gibt es für die Zahlenumwandlungen, die Grundrechenarten und insbesondere für Nachkommazahlen ebenfalls eine übersichtliche Zusammenfassung.


    Die Werte für sin und cos sind üblicherweise in Tabellen hinterlegt - das Berechnen der Werte mit Näherungsverfahren wäre auf einem handelsüblichen Taschenrechner oft zu zeitaufwendig.


    PS @ boener: Binärcodierte Hex-Zahlen gibt es nicht ;) der Taschenrechner rechnet binär, Hex ist nur eine übersichtliche Darstellungsform, halt mit der Basis 16 statt 10 (dezimal) oder 2 (binär bzw. dual). Eine Hex-Stelle läßt sich nämlich mit genau vier Bits darstellen, mit (bin)0000 = (hex)0, 0001 = 1, 0010 = 2, 0011 = 3... bis 1001 = 9, 1010 = A, 1011 = B... usw.. bis 1111 = F.
    D.h. die Hex-Zahl 123ABC läßt sich ganz einfach schreiben als binär: 0001 0010 0011 1010 1011 1100.


    Und unser Beispiel von oben (dez)123 = (bin)0111 1011 wäre also in Hex.. genau: 7B.

  • das meinte ich ja mit binärcodiert: Hex Zahlen, die ja nichts anderes als Binärzahlen darstellen.... nur eben in kürzerer Schreibweise.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!