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


von Fichte (Gast)


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

von Irgwer (Gast)


Lesenswert?

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

zahl3 = zahl1 * 100 + zahl2;

von Olaf (Gast)


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

von crazy horse (Gast)


Lesenswert?

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

von Azrael (Gast)


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

von Fichte (Gast)


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

von Azrael (Gast)


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

von Fichte (Gast)


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

von The Daz (Gast)


Lesenswert?

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

von Fichte (Gast)


Lesenswert?

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


MFG: Fichte

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.