webForumDet fria alternativet

^= ?

C/C++

2 svar · 217 visningar · startad av Nexus86

Medlem sedan okt. 20023 030 inlägg
Frågan#1

Vad gör de här raderna?

for (i=2; i<12; i++)
    data_h[i]^=0xa5;

data_h är en char (char data_h[12];) och innehåller lite diverse tecken. T.ex. så innehåller den dessa värden:

  • data_h[2] == 17
  • data_h[3] == 32

Resultatet efter att ha kört koden ovan är:

  • data_h[2] == -76
  • data_h[3] == -121

Jag kommer iaf inte på någon logisk lösning till vad koden kan göra men någon annan kanske vet? :)

Medlem sedan maj 20002 993 inlägg
#2

data_h*^=0xa5;

är samma sak som

data_h *= data_h *^ 0xa5;

Dvs XOR.***

Medlem sedan okt. 20023 030 inlägg
#3

Jo det visste jag men inte att det var XOR. Tack! :bire

258 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)