INT zu BCD Algorithmus

In der Ausbildung kamen wir an einen Punkt, wo wir einen Zahlenwert in die BCD-Schreibweise überführen mussten. Bevor ich erfahren habe, dass die SPS-Software einen vorgefertigten Baustein hat, habe ich mir selber einen Algorithmus ausgedacht.

Der Algorithmus für Zahlen von 0-99 ist wie folgt aufgebaut:

\text{I} = \text{int}(\frac{x}{10})

\text{II} = x - (\text{I} \cdot 10)

\text{III} = (\text{I} << 4)

\text{IV} = \text{II} + \text{III}

Als Rust-Programm:

fn int_to_bcd(x: i32) -> i32 {
    let tenths: i32;
    tenths = (x / 10) as i32;
    let ones: i32;
    ones = x - (tenths * 10);
    let shifted_tenths: i32;
    shifted_tenths = tenths << 4;
    shifted_tenths + ones
}

Als Funktionsblockdiagramm:

screenshot_20170111_180821

Werbeanzeigen

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s