PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zahlensysteme



Import-Script
27.11.2003, 17:43
Moin, hat jemand ne Idee, wie ich Zahlen, von -1,0 bis &#43;1,0 als 8 Bit Wert verarbeite, so dass Addition, Subtraktion, Multiplikation und Division möglich ist. <BR> <BR>Beste Gr&uuml;ße, Mare

Import-Script
27.11.2003, 23:58
hallo bruder, <BR> <BR>schau mal nach,was SIGNIERTE BYTEZAHLEN sind...und unsignierte. <BR>der wertebereich erstreckt sich von -128&#40;80h&#41; <BR>bis &#43;127 &#40;7fh&#41; Zahlen mit gesetztem 7tenbt=1 werden als negative zahlen betrachtet..... <BR> <BR>addition , subtraktion wie bei unsignierten <BR>byte-zahlen.multplikation auch,solange das produkt innerhalb -128 und &#43;127. <BR>die division ist dagegen etwas trickreich/beduerftig. <BR> <BR>hoffe es nuetzt dir <BR>ed <BR><img src="http://progshop.com/elektronik/diskussion/clipart/happy.gif" border=0>

Import-Script
28.11.2003, 06:29
Tja, hab ich mir auch schon &uuml;berlegt, mit dem Zweierkompläment anzusetzen. Das Problem besteht in der einen Nachkommastelle. Bei der Multiplikation werden da nämlich zwei draus. Tja, Division ist echt ne Sache f&uuml;r sich... <BR> <BR>Beste Gr&uuml;ße, Matek

Import-Script
28.11.2003, 15:56
@Bruder m: Wie wäre es mit BCD-Arithmetik ohne Rundungsfehler etc. pp. So wie die Banken das mit Cobol machen; hätte da auch noch ein schönes Buch, &#34;Pascal-SC&#34; aber papp Dir doch die Digits einzeln und rechne sie wie in der Schule gelernt. <BR>123:768,5=???? <BR>erstmal alles mal 10 damit das Komma weggeht <BR>1230:7685=??? <BR>und dann schön mit Mod und Div das Ding von oben nach unten abarbeiten <BR>1230:7685 geht nicht, also 0 hin, Komma setzen und die 1230 &#42; 10. <BR>12300:7685 geht einmal. <BR>Macht 0,1 <img src="http://progshop.com/elektronik/diskussion/clipart/talker.gif" border=0> &#40;erstmal&#41; <BR>und weiter. Rest 12300 - 1mal 7685 = 4615 <BR>Null dran, nächste Kommastelle und einmal neu <BR>46150:7685 geht 6 mal <BR>Macht 0,16 <img src="http://progshop.com/elektronik/diskussion/clipart/talker.gif" border=0> &#40;erstmal&#41; <BR>und das treibst Du halt so weiter bis beliebig genau oder Aufwand zu gross. <BR>In diesem Exempel <BR>46150 - 6mal 7685 = 40 <BR>Null dran weil nächste Kommastelle <BR>400:7685=??? <BR>geht immer noch nicht, wieder Null dran <BR>4000:7685=??? <BR>geht immer noch nicht, und jetzt halt irgendwann <BR>Abbruch - wenn &#34;zweimal Null dran&#34; immer noch nicht geht&#34; z.B. <img src="http://progshop.com/elektronik/diskussion/clipart/smile.gif" border=0> <BR>

Import-Script
28.11.2003, 16:31
Hi, Andreas, <BR> <BR>Vielen Danke f&uuml;r deine Ausf&uuml;hrliche Beschreibung. Das mit der schriftlichen Division war mir klar. Die Problematik bestand einfach, darin, dass sich das Ergebnis wieder im Intervall von -1,0 bis &#43;1,0 ausdr&uuml;cken lassen soll, und mit nur einer Nachkommastelle, und auch nur mit einer 8-Bit Integer Zahl. <BR>Das mit dem Zweierkompläument hat ja gut geklappt, das mit Mul und Div hab ich so gelöst, dass ich das Intervall, als Ring definiert habe, in dem Multiplikation und Division nicht durchgef&uuml;hrt werden d&uuml;rfen, denn z.B. liefert 0,9&#42;0,9 &#40;beides Elemente des Ringes&#41; als Ergebnis 0,81 und dies ist kein Element des Ringes! Division ist ja noch viel Schlimmer, denn 0,9/0,3 sind 3,0! und das liegt nun wahrlich nicht mal im Intervall! <BR>Bin mal gespannt, was der Informatik-Prof dazu sagt <img src="http://progshop.com/elektronik/diskussion/clipart/biggrin.gif" border=0> <BR> <BR>Beste Gr&uuml;ße, Marek

Import-Script
29.11.2003, 19:58
Gruss an Deinen Prof im Namen der Herrn Prof... <BR><img src="http://progshop.com/elektronik/diskussion/messages/4982/10056.jpg" alt="PSC"> <BR> <BR>ISBN 3-411-03113-1 <BR> <BR>ich leihe es ihm gerne auch mal aus. DAS IST SO !!! Computer machen Rundungsfehler abstrus von jeglichem &#34;rechen-gewollten&#34; bis hin zu Ergebnissen, die jenseits sind von allem. <BR>Darf man halt nicht glauben oder mit Skepsis betrachten. In dem Buch steht drin, wie!!! <BR>Ich hab den Compiler auf einem KWS SAM68k laufen; super Implementation; kein Ding; der RECHNET RICHTIG!!! - und wenn er mir sagt das ist zwischen 2 und 25 Volt, nun ja, zumindest stimmt das dann auch.<img src="http://progshop.com/elektronik/diskussion/clipart/smile.gif" border=0>