r/italy Jul 11 '18

/r/italy Caffè Italia * 11/07/2018

Buongiorno cavaliere, il solito?

23 Upvotes

798 comments sorted by

View all comments

3

u/sdaxddx Panettone Jul 11 '18 edited Jul 11 '18

Aiutino in C++? Cosa fa questa operazione : if( x&((pippo)1) ), con x e pippo (type)definiti come unsigned int? La prima parte bitwise la comprendo, non comprendo quell'operazione a 1. Edit: grazie in anticipo ovviamente per qualsiasi aiuto.

Inoltre, conoscete qualche discord o simili dove posso chiedere per evenienze del genere (farmi molestare verbalmente su Stackoverflow anche no)

7

u/srandtimenull Jul 11 '18

Innanzitutto, mettiamolo in verbatim che mi fanno male gli occhi

if (x & ((pippo)1))

1 viene castato a pippo (e non ne capisco il motivo, tanto ha lo stesso valore in bit sia come int che come unsigned int).

Quindi, fa l'and bit a bit tra x e 000...001, ovvero, ritorna 1 se l'LSB di x è 1, altrimenti ritorna 0.

Non capisco perché non sia stato scritto semplicemente

if (x & 1)

che otterrebbe lo stesso identico effetto (e probabilmentesicuramente lo stesso assembly).

3

u/Luck88 Emilia Romagna Jul 11 '18 edited Jul 11 '18

username checks out

3

u/srandtimenull Jul 11 '18

Il primo che me lo dice, yeah!

2

u/Luck88 Emilia Romagna Jul 11 '18

Evvai, 5 anni di informatica liceo servono a qualcosa (no non è vero ho delle conoscenze minime e estremamente limitate)