Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Also, es kommt natürlich drauf an, wie es definiert ist aber falls die gesuchte Zahl 385 ist hätten wir da
0x00(Byte1)*256*256*256 + 0x00(Byte2)*256*256 + 0x01*256 + 0x81
(oder in python (0x00<<24) + (0x00<<16) + (0x01<<8) + 0x81 aber die bitshifterei muss einem liegen, ersteres finde ich verständlicher )
Also, es kommt natürlich drauf an, wie es definiert ist aber falls die gesuchte Zahl 385 ist hätten wir da
0x00(Byte1)*256*256*256 + 0x00(Byte2)*256*256 + 0x01*256 + 0x81
(oder in python (0x00<<24) + (0x00<<16) + (0x01<<8) + 0x81 aber die bitshifterei muss einem liegen, ersteres finde ich verständlicher )
Bitte aus Geschwindigkeits- und Stabilitätsgründen Polynome richtig ausrechnen:
Code:
(((Byte1)*256 + Byte2)*256 + Byte3)*256 + Byte4
(Oder die Bit-Shift Lösung nehmen)
Zugegeben: bei diesem kleinen Beispiel mit Integer-Werten macht das keinen großen Unterschied, doch wenn das Polynom etwas größer wird oder sobald mit Gleitkomma-Werten (float, double) gerechnet wird mach das einen Unterschied...
TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!
danke, habe mir für die Multiplikation einen kleinen Baustein geschrieben, den habe ich dann einfach hintereinander gehängt. Ist ja so einfach, wenn man weiss wie.
Da ich teilweise die Angaben in 0,1 habe ist darin auch der Teiler berücksichtigt.
Peter, ich sehe in Deinem Baustein mindestens ein Problem
Wie soll ichs erklären, die Bausteine werden ja pro Eingangsänderung abgearbeitet, dass die beiden Eingangsbytes aus derselben Messung kommen oder in der Richtigen Reihenfolge eintreffen ist nicht sichergestellt:
Nehmen wir mal an, Du bekommst zweimal einen 2byte Wert herein,
#1 0x00 0xFF
#2 0x01 0x02 (drei mehr als der letzte Wert)
Das Problem jeweils Fett, nur bei Durchlauf 2&4 wirst du den richtigen Wert am Ausgang haben! Einfachste Lösung: beide Bytes auf einen Eingang, Bedingung EC[1] und dann intern auftrennen und "in einem rutsch" rechnen:
(je nachdem wie sie vorliegen nehmen wir mal an als ASCII-String "000F" - ins blaue!)
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar