- Modernes Energiemessgeraet    Werbung      
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 21

Thema: Rechnen mit Gleitkommazahlen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    41
    Beiträge
    3.416
    100/65536 = 0 .... die nachkommazahlen werden abgeschnitten!

    und alles multipliziert mit null bleibt null ^^

    stell es doch ein wenig um, erst alles multiplizieren und DANN dividieren, aber achtung, pass auf dass bei dem multiplizieren der wert nicht überläuft!
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Damit es beim Multiplizieren keinen Überlauf gibt kann man die Berechnung mit 32 Bit Zahler erzwischen, indem man die Konstante 10000 als 10000L schreibt und so zu einem Long wert macht.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    41
    Beiträge
    3.416
    wenn man auf den Zahlenbereich achtet, sollte man sich den Rechenvorteil der Prozessorarchitektur nicht durch Verwendung von long Werten zunichte machen finde ich, außerdem habe ich vergessen zu erwähnen, dass man am besten einen expliziten cast auf (signed int) der Formel voranstellt, damit der compiler auch das Vorzeichen mitnimmt!
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Um eine Rechnung mit 32 Bit kommt man in C kaum herum:
    Wenn das Ergebnis bis 255 gehen kann, passt das Ergebnis * 65536 gerade nicht mehr in 24 Bit, und schon gar nicht in 16 Bits.

    In die 24 Bit würde man es gerade noch bekommen indem man
    ((25*25)*wert) / (4096) rechnet.
    Aber 24 Bit Zahlen werden von GCC, wie fast allem C Compilern nicht unterstützt, das hilft einem also auch nicht weiter. Genauso fehlt die Multiplication 16 Bit * 16 Bit -> 32 Bit oder besser noch nach 24 Bit.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    38
    Beiträge
    1.225
    Zitat Zitat von daniel.weber Beitrag anzeigen
    Der Wert soll sich aus folgender Rechnung ergeben:

    (100/65536)* wert * 100;
    Bequemerweise hast du DEN Teil von Daniels Aussage vergessen ... die +-255 sind Ausgabe und nicht Eingabe. Und da du in deine LUT die Eingabe stecken musst, bringt das ganze nichts. (Außer du möchtest einen Reverse-Lookup implementieren, was dann doch etwas übertrieben ist ...)

    mfG
    Markus

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    08.04.2009
    Ort
    an der Ostsee
    Beiträge
    334
    WENN es so ist...
    dann ist der EinWert also nur im Bereich -167 bis +167...und die Tabellenform wird noch kürzer...

    solange Daniel sich nicht äussert ist jede weitere Diskusion zwecklos.

    Mit Gruß
    Peter

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    26.08.2009
    Beiträge
    5
    Wenn es unbedingt als Integer gemacht werden muss,
    dann klappt das ganze so in C:
    Code:
    int wert;
    printf("(100/65536)* %i * 100 = %.2f", wert, (100.0/65536.0)* wert * 100.0);
    Geändert von XCircle (10.05.2011 um 00:09 Uhr)

Seite 2 von 2 ErsteErste 12

Ähnliche Themen

  1. Zinsaufgabe rechnen (mit dem Boe-Bot)
    Von butt-bot im Forum Software, Algorithmen und KI
    Antworten: 4
    Letzter Beitrag: 28.03.2007, 21:14
  2. Gruppenschaltung rechnen
    Von Larzarus im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 28.07.2006, 16:55
  3. Rechnen mit Bascom
    Von atvler im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 12
    Letzter Beitrag: 22.05.2006, 21:50
  4. Rechnen mit 3 Registern
    Von Philipp83 im Forum Software, Algorithmen und KI
    Antworten: 9
    Letzter Beitrag: 10.05.2006, 10:46
  5. Rechnen mit Gleitkommazahlen in Bascom
    Von Stefan im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 10.03.2004, 20:39

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

    Werbung      fchao-Sinus-Wechselrichter AliExpress