uint16 est un type entier non signé de 16 bits ; les entiers ont deux types : non signés et signés. Par défaut, les variables entières déclarées sont des types signés. Si vous devez déclarer un type non signé, vous devez le spécifier dans le préfixe du type. non signé.
L'environnement d'exploitation de cet article : système Windows 7, ordinateur DELL G3
Quel est le type de données de uint16 ?
uint16 est un type entier non signé de 16 bits, uint8 est un type entier non signé de 8 bits
Les types entiers ont deux types : non signé (non signé) et signé (signé) Par défaut, les variables entières déclarées sont C'est le cas. un type signé (char est un peu spécial). Si vous devez déclarer un type non signé, vous devez ajouter unsigned avant le type. Lorsqu'il est impossible de prendre une valeur négative, elle peut être définie comme non signée. Dans certaines données de programmation embarquées sous-jacentes, elle est généralement non signée.
Introduction connexe :
Conversion d'un entier signé et d'un entier non signé lorsqu'un nombre négatif
Lors de l'exécution d'une opération (comme a>b ici), si l'un de ses opérandes est signé Et l'autre nombre n'est pas signé, alors le langage C forcera implicitement le paramètre signé à être un nombre non signé et supposera que les deux nombres ne sont pas négatifs pour effectuer cette opération.
Les entiers existent généralement dans les ordinateurs sous la forme de complément à deux, et le complément de -1 (stocké sur 4 octets) est 1111,1111,1111,1111. Pour la plupart des implémentations du langage C, la règle générale pour la conversion entre des nombres signés et non signés de même longueur de mot est la suivante : la valeur peut changer, mais pas la configuration binaire.
En d'autres termes, en convertissant un int non signé en int ou en convertissant un int en un int non signé, la représentation binaire sous-jacente reste inchangée. En d'autres termes, même après la conversion de -1 en entier non signé, sa représentation en mémoire n'a pas changé, c'est-à-dire 1111,1111,1111,1111.
La même représentation de stockage peut correspondre à des données différentes pour l'application. Par exemple, 1111, 1111, 1111, 1111 représente -1 pour les nombres signés, mais pour les nombres non signés, il représente UMax (car il n'y a pas de bit de signe, tout comme le complément à un d'un nombre positif est lui-même, et le bit le plus élevé ne représente pas le bit de signe), mais leur stockage sous-jacent est le même.
Pour plus de connaissances connexes, veuillez visiter la rubrique FAQ !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!