Question bête

spiky31 Messages postés 106 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 11 février 2008 - 25 févr. 2006 à 19:36
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 25 févr. 2006 à 20:54
Bonjour

j'ai défini ceci :

__inline void __fastcall swap32(int *val)
{
__asm
{
mov eax,dword ptr[ecx]
bswap eax
mov dword ptr[ecx],eax
}
}

et ceci :

#define SWAP32(val) \
((unsigned int) ( \
(((unsigned int) (val) & (unsigned int) 0x000000ffU) << 24) | \
(((unsigned int) (val) & (unsigned int) 0x0000ff00U) << 8) | \
(((unsigned int) (val) & (unsigned int) 0x00ff0000U) >> 8) | \
(((unsigned int) (val) & (unsigned int) 0xff000000U) >> 24)))

Qu'est ce qui a votre avis sera le plus rapide a s'executer

var = SWAP32(var) ou alors : swap32(&var)

Merci d'avance

1 réponse

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 févr. 2006 à 20:54
1 bswap devrait gagner à tout coup contre 4 shift.
Ceci dit il ne faut jamais être économe de mesures.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0
Rejoignez-nous