Einfache Verschlüsselung, Performancefrage



  • Ich baue mir gerade ein paar Klassen für Virtuelle dateien. Echte dateien solen eingelesen werden und im RAM gehalten werden für weitere Verarbeitung. Jetzt wollte ich die Dateien mit eienr einfachen verschlüsselung versehen, dabei schwebt mir sowas wie unsigned char+1 vor. Daher hätte ich mal folgende 2 Fragen.

    1. ich hab gelesen das das Verhalten von unsigned char bei über und unterlauf deffiniert ist mit char_max+1=char_min und char_min-1=char_max haut das hin?

    2. wenn ich die daten einlese und dann alle chars nacheinander umwandeln muß, welchen einfluß hat das auf die performance? Wäre der Arbeitsaufwand der da betrieben wird bei 1GB meßbar gegenüber einer Datei die direkt eingelesen wird ohne entschlüsselt zu werden?


  • Administrator

    Xebov schrieb:

    1. ich hab gelesen das das Verhalten von unsigned char bei über und unterlauf deffiniert ist mit char_max+1=char_min und char_min-1=char_max haut das hin?

    Wenn ich den Standard richtig verstehe, dann stimmt das bei unsigned integral Typen.

    Ich zitiere mal:
    C++ Standard 98
    3.9.1 Fundamental types
    Abschnitt 4

    Unsigned integers, declared unsigned, shall obey the laws of arithmetic modulo 2n where n is the number of bits in the value representation of that particular size of integer. 41)

    ...

    41) This implies that unsigned arithmetic does not overflow because a result that cannot be represented by the resulting unsigned integer type is reduced modula the number that is one greater than the largest value that can be represented by the resulting unsigned integer type.

    Xebov schrieb:

    2. wenn ich die daten einlese und dann alle chars nacheinander umwandeln muß, welchen einfluß hat das auf die performance? Wäre der Arbeitsaufwand der da betrieben wird bei 1GB meßbar gegenüber einer Datei die direkt eingelesen wird ohne entschlüsselt zu werden?

    Wahrscheinlich fällt sowas einfaches nicht ins Gewicht, da die Zeit, um das File überhaupt von der Platte zu lesen und im RAM abzulegen, so extrem viel mehr benötigt. 😉

    Grüssli


Anmelden zum Antworten