Dove sbaglio ?

Zamundo:
kk anzicchè mostrare il corretto valore 40000 mostra l'inspiegabile -25536

Non è inspiegabile, la rappresentazione binaria di 40000 è la stessa di -25536, se usi una variabile 'int' (16 bit con segno) il massimo valore positivo è 32767, se superi questo massimo entri nei numeri negativi, il risultato è corretto :wink:

Python lo conferma:

>>> print(bin(40000 & 0xFFFF))
0b1001110001000000
>>> print(bin(-25536 & 0xFFFF))
0b1001110001000000