Question

Je crée une visionneuse de sac à dos TF2 en Python et j'ai un jeton d'inventaire d'une longueur de 32 non signé.Les 16 premiers bits ne sont pas importants pour moi.L'approche habituelle en C serait quelque chose comme

(a<<16)>>16

pour obtenir les 16 derniers bits.Mais Python n'est pas du C, et l'opération ci-dessus ne fonctionnera pas.Comment spécifier que Python DEVRAIT utiliser int32 pour cette variable ?

Était-ce utile?

La solution

Vous pouvez utiliser l'opérateur ET au niveau du bit (&):

>>> 0x12345678 & 0xffff
22136
>>> hex(_)
'0x5678'

Autres conseils

Vous pouvez utiliser Array

array.array('H', [10])

créera une éventail de 1 mot abrégé non signé.(Il y a plusieurs années, j'ai écrit un pilote HW à Python combinant Array et struct

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top