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>