We rechnet ein computer/taschenrechner von binär zu dezimal um?
Kommt bei einer rechnung am taschenrechner z.B. das ergebnis 3 raus, dann ist der wert den der taschenrechner berechnet ja eigentlich 11, also in binär. Am bildschirm des taschenrechners steht aber dennoch 3 und nicht 11. Wie rechnet der rechner das um? Woher weis der taschenrechner, bei welchem binärwert er welche pixel zeigen muss?
4 Antworten
Taschenrechner rechnen nicht wirklich binär, das ist aber ein anderes Thema.
Woher weißt Du denn, welches Symbol Du für die Ziffern Null, Eins, Zwei usw. machst? Weils festgelegt ist.
Das ist beim Rechner nicht anders. Ich nutze die Ziffernwertigkeit (3) und lese eben an Index 3 die Pixeldaten (Matrix) für die Zifferndarstellung aus einer Tabelle aus. Alternativ hinterlege ich den Ansteuerungsvektor für die Segmentanzeige, oder nutze den Wert der Ziffer als Index innerhalb des Zahlenblocks eines Fonts, oder ....
Aber wie funktioniert das, woher weis der rechner, dass er bei 1100 eine 1 und eine 2 zeigen muss und bei 1110 eine 1 und eine 4 usw.?
Indem er ein Ganzzahldivision mit Rest macht ;-).
134 / 10 ist 13 Rest <4>
13 / 10 ist 1 Rest <3>
1/10 ist 0 Rest <1>
Und ich sagte bereits, Taschenrechner rechnen nicht dezimal, sondern in BCD, d.h. sie kodieren jede Dezimalstelle mit 4 Bits. Insofern müssen sie diese arbeit nciht machen.
Danke, deine antwort hat mir sehr geholfen
Taschenrechner verwenden BCD, Binary Coded Decimal.
Dementsprechend gibt man an jeder Stelle einfach die entsprechende Ziffer von 0-9 aus.
Die 10 Ziffern (also welcher Input welchen Pixel-Output erzeugt) sind wohl hardgecoded, das ist immer gleich:
0=0000
1=0001
2=0010
3=0011
4=0100
5=0101
6=0110
7=0111
8=1000
9=1001
Und wie funktioniert das zum beispiel bei einer 13, bzw. 1101?
Das heißt, die zahl wird in „Viererblöcken“ dargestellt und jeder block steht für eine Ziffer?
Danke für deine antwort. Kann ein rechner auf diese art auch mit halb- und volladdierern rechnen?
Schauen wir doch mal kurz:
1001 (9)
0001 (1)
--------
1010
Klappt nicht so wirklich gut
Ich muß also einen BCD-Adder entwerfen, wenn ich nicht immer konvertieren will.
Hab grade eine gute erklärung zu dieser methode gefunden, danke
Das besorgen Decoder.
Das sind fix "verdrahtete" Chips, Logikbausteine, die den Binärcode in den darzustellenden Code umwandeln.
Dieser Umwandlungsprozess im Chip ist durch das Display definiert und muss darauf abgestimmt, sei es ein 7-Segment-Display oder ein Punkt-Matrix-Display oder gar ein hochauflösendes Grafikdisplay.
Deshalb hat praktisch jedes Display seinen eigenen Decoder-Chip mit drauf.
Ist halt das E.V.A Prinzip, Eingab,e Verarbeitung und Ausgabe, ein Taschenrechner ist eine sehr einfache Form davon.
Du gibst was ein, der "Rechner" verarbeitet das und gibt die Antwort auf dem Display aus.
Im Rechner ist halt eine Zuweisung gespeichert, das was du als 1 1 Beschreibst ist ja Binär viel abstrakter, da steht nirgends eine Zahl, das sind ehr Elektrische Impulse und man hat halt einprogrammiert wie der Taschenrechner auf welchen Impuls zu reagieren hat
So als wenn du ein Morsealphabet neben dir liegen hast, und Morsezeichen übersetzt...nur sehr sehr schnell
Aber eine 3 auf dem display sind ja nur festgelegte pixel, wird für jede zahl abgespeichert, welche pixel zur anzeige eingeschaltet werden?
Aber man kann doch nicht von 1 bis in den Milliardenbereich für jede zahl die pixel festlegen
Wird bei einer 12 dann eine 1 und eine 2 oder eine 12 als ganzes abgelesen?