spiegelverkehrter bitwert



  • Hallo,

    etwas ungewöhnlich aber wie erreiche ich es, dass in einer __int64 Variablen der Wert hexadezimal komplett getauscht / verschoben wird, also die Zahl von

    0x30152047CE

    0xCE47201530

    zu tauschen. Geht das ??? Und wenn ja wie kann ich das anstellen ?



  • steht der in dx:ax?
    dann würde ich denken an...
    ups, willst ja nur c++, dann würde ich wohl sowas machen: __int64 dreh(__int64 x){__int64 y=0;for(int i=0;i!=8;++i){y=y*256+x%256;x/=256;}return y;}

    [ Dieser Beitrag wurde am 17.06.2003 um 23:57 Uhr von volkard editiert. ]



  • Dankeschön, werde es mal versuchen !



  • Hm, nicht ausprobiert aber geht das vielleicht auch:

    __int64 i;
    BYTE *p = (BYTE*)&i;
    std::reverse( p, p+8);
    


  • <furchtbare Verletzung des Standards>
    Müßte nicht im MMX-Befehlssatz der CPU dafür ein eigener Opcode vorhanden sein? Bitreverse-Shuffling ist doch eine typische MMX-Operation... ich denke, daß hier (machst Du eine FFT?) der Griff zu ASM durchaus erlaubt wäre, falls die Applikation in der von mir genannten Richtung geht.
    </furchtbare Verletzung des Standards>


Anmelden zum Antworten