mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 2 int werte in einen int wert Codevision


Autor: Fichte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hay @all

Ich habe eine Frage ich habe 2 INT Werte und möchte beide zusammen
fassen.

Bsp.

     "int zahl1=5;"
     "int zahl2=40;"
     ----------------
     "int zahl3 540"


Ergebniss soll also 540 sein. Wie Löse ich das am besten???

MFG: Fichte

Autor: Irgwer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kenne Codevision zwar nicht, aber eigentlich sollte es dort auch so
gehen:

zahl3 = zahl1 * 100 + zahl2;

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Vorgehen von Irgwer und Fichte ist total an der Praxis vorbei.
Gehen wir von 32Bit für ein int aus.
Dann nimmt man am besten jeweils 16Bit für die zwei Zahlen.

Int16 zahl1, zahl2;
Int32 zahl3;

zahl1 = 5; // 0x05
zahl2 = 40; // 0x28

// zahl1 16Bit nach links schieben. untere 16Bit
/7 durch zahl2 ersetzen.
zahl3 = (zahl1 << 16) | zahl2; // zahl3 = 0x0528

Die Zahlen liegen jetzt sauber getrennt in zwei Registerhälften.

Gruß

Olaf

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, aber du bist der Praktiker??
int: 16bit
Deine Rechnung 1320d, was ein wenig vom gewünschten Ergebnis abweicht.

Autor: Azrael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiß leider nicht ob dieser code schneller läuft, oder nicht,
aber es sollte definierter sein was passiert

struct Tdint {char z1; charz2};
union Udint{int16 ges, Tdint einzeln};

Udint deineVariable;

Udint.einzeln.z1 = 5
Udint.einzeln.z2 = 9
int a = Udint.ges; // in a steht jetzt hx0509
ob man einzeln dazuschreiben muss oder nciht, weiß ich grad nicht.
aber das kann man sich ja in da doku zu union anschaun

Autor: Fichte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein so meinte ich das nicht das war nur ein beispiel.

Ich möchte gerne weg/zeit Rechnen die zeit habe ich im Format Stunde
Minute Sekunde alle werte sind Einzelln Aufgeführt nun muss ich ja
rechnen Zeit also zbs. 1:20 sind dann 120 und das dann noch mit dem weg
berechnen.

Rechnung:

       Durchschnitt=weg/zeit;
 bsp.  Durchschnitt=10/120;

MFG: Fichte

Autor: Azrael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, wenn du mit zeiten rechnest geht das so nicht

du musst bedenken das 1h nicht gleich 100min sind
also musst dus umrechnen
zeit= min + h * 60;
dann hast du aber minuten. nachdem du zeit entweder in m/s oder in km/h
hast würde ich mir erst überlegen in was du rechnen willst.
wenn du int nimmst, wohl eher in m/s
also würde dein Durchschnitt sein
min=10;
h=0;
zeit = min * 60 + h * 3600;
weg = 1000;// Meter!
Durchschnitt = weg / zeit;
// Durchschnitt ist dann 100m/s

Autor: Fichte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also die Km/h möchte ich rechnen diesen wert habe ich auch und ich habe
die Zeit nur das problem was ich hate war das ich Stunde und minute
nicht zusammen ziehen konnte aber so geht es wie du es beschrieben
hast.

zeit = min * 60 + h;
Durchschnitt = km / zeit;


MFG: Fichte

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wohl eher
zeit = min + 60 * h  (ergibt zeit in minuten)
durchschnitt = km / (zeit / 60) (ergibt km/h)

Autor: Fichte (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo so hab ichs auch bzw. Hab ichs gesehen als du es geschrieben hast den
die Rechnung ging nicht ganz auf.!


MFG: Fichte

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.