Dynamisch Rechnen

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Facebamm.

    Dynamisch Rechnen

    Hallo,

    ich bin grade dabei dynamisch zur rechnen
    e.g
    Spoiler anzeigen

    C#-Quellcode

    1. //pseudocode
    2. T a = default;
    3. T b = default;
    4. T c = a + b;


    nur geht das nicht so recht (logisch).

    Als ich googelte, traf ich auf dynamic, aber ich weigere mich dynamic zu benutzen, denn ich bin der Meinung, das es dafür einen besseren weg gibt, denn im Endeffekt sind es alles nur bits :D

    Kennt oder hat das jm. ein fertige Funktion, ansonsten wäre mein Ansatz den Type <T> in Bytes zu teilen und dann meine Rechenoperation ausführe. Problem wird nur dann entstehen, wenn ich ein übelrauf habe.
    e.g 255 * 2 => 500, und das geht nicht.

    ansonsten da so mein Ansatz aus


    !!Horror-Code
    Spoiler anzeigen

    C#-Quellcode

    1. public static Elementar<T> operator *(Elementar<T> element, T val) {
    2. int tByteCount = element.TSize;
    3. T* valAPtr = &val;
    4. for(int i = 0; i < element.Count; i += 1) {
    5. T* valBPtr = element.GetElementPtrAt(i);
    6. for(byte byteIndex = 0; byteIndex < tByteCount; byteIndex += 1) {
    7. int valueC = *(byte*)(valAPtr + byteIndex) * *(byte*)(valBPtr + byteIndex);
    8. *(byte*)(valBPtr + byteIndex) = *(byte*)&valueC;
    9. }
    10. }
    11. return element;
    12. }

    Facebamm schrieb:

    im Endeffekt sind es alles nur bits


    Das stimmt, aber die verschiedenen Datentypen haben ja auch verschiedenen Formate in denen sie gespeichert sind. Du kannst ja z.B. ein float oder double nicht einfach in Bytes aufteilen und dann einzel rechnen, das funktioniert nicht, oder beschränkt sich das nur auf byte, short, int und long?

    Dazu gabs auch schon mal ein ähnlichen Post: Best Practice : Gleiche operationen fuer verschiedene Datentypen?
    operiert wird nur mit type gleichen.

    Bluespide schrieb:

    oder beschränkt sich das nur auf byte, short, int und long?

    die beschränkung liegt bei unmanaged - typen.

    und was am ende raus kommt, ist mir eigentlich egal, es soll einfach nur rechnen. (richtig rechnen)

    Bluespide schrieb:

    Gleiche operationen fuer verschiedene Datentypen?


    Das schau ich mir mal an :D