Je convertis du code C en Delphi. Quelqu'un peut-il m'expliquer s'il vous plaît ce que cette ligne signifie?Que signifie cette ligne de code C?
nResult = ((pBuffer[ 0 ] << 8) & 0xFF00)
| (pBuffer[ 1 ] & 0x00FF);
Voici le reste du code pour le contexte:
USHORT UTIL_htons(USHORT hostshort)
{
PUCHAR pBuffer;
USHORT nResult;
nResult = 0;
pBuffer = (PUCHAR)&hostshort;
nResult = ((pBuffer[ 0 ] << 8) & 0xFF00)
| (pBuffer[ 1 ] & 0x00FF);
return(nResult);
}
USHORT UTIL_ntohs(USHORT netshort)
{
return(UTIL_htons(netshort));
}
ULONG UTIL_htonl(ULONG hostlong)
{
PUCHAR pBuffer;
ULONG nResult;
UCHAR c, *pResult;
pBuffer = (PUCHAR)&hostlong;
if(!pBuffer)
{
return(0L);
}
pResult = (UCHAR *)&nResult;
c = ((UCHAR *)pBuffer)[ 0 ];
((UCHAR *)pResult)[ 0 ] = ((UCHAR *)pBuffer)[ 3 ];
((UCHAR *)pResult)[ 3 ] = c;
c = ((UCHAR *)pBuffer)[ 1 ];
((UCHAR *)pResult)[ 1 ] = ((UCHAR *)pBuffer)[ 2 ];
((UCHAR *)pResult)[ 2 ] = c;
return(nResult);
}
ULONG UTIL_ntohl(ULONG netlong)
{
return(UTIL_htonl(netlong));
}
Merci à l'avance Bojan
Qu'avez-vous essayé jusqu'à présent? Sur quoi êtes-vous coincé? Nous aimons aider les gens qui s'aident eux-mêmes, pas seulement faire leur travail pour eux. – Oded
Ok. Pour reformuler la question. Quelqu'un peut-il m'expliquer la signification de cette ligne nResult = ((pBuffer [0] << 8) & 0xFF00) | (pBuffer [1] & 0x00FF); –
Je ligne épaisse citée est auto-expliquant. il obtient 8 bits d'un élément tampon, puis 8 bits d'un autre, puis les concatène togeter. – Vovanium