Opérateur de complément à 1 : ~

Syntaxe

~ cast-expression

Notes

L’opérateur de complément à 1 (~), parfois appelé opérateur de complément au niveau du bit, génère le complément à 1 au niveau du bit de son opérande. Autrement dit, chaque bit qui est 1 dans l’opérande est 0 dans le résultat. Inversement, chaque bit qui est 0 dans l’opérande est 1 dans le résultat. L'opérande de l'opérateur de complément à un doit être un type intégral.

Mot clé d’opérateur pour ~

C++ spécifie compl comme orthographe alternative pour ~. En C, l’orthographe alternative est fournie sous forme de macro dans l’en-tête <iso646.h>. En C++, l’orthographe alternative est un mot clé. L’utilisation de <iso646.h> ou son équivalent C++ <ciso646> est déconseillée. Si vous utilisez Microsoft C++, l’option de compilateur /permissive- ou /Za est nécessaire pour activer l’orthographe alternative.

Exemple

// expre_One_Complement_Operator.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;

int main () {
   unsigned short y = 0xFFFF;
   cout << hex << y << endl;
   y = ~y;   // Take one's complement
   cout << hex << y << endl;
}

Dans cet exemple, la nouvelle valeur assignée à y est le complément à 1 de la valeur non signée 0xFFFF ou 0x0000.

La promotion d’un intégral est exécutée sur des opérandes intégraux. Le type vers lequel l’opérande est promu est le type résultant. Pour plus d’informations sur la promotion des types intégraux, consultez Conversions standard.

Voir aussi

Expressions avec des opérateurs unaires
Opérateurs intégrés, priorité et associativité C++
Opérateurs arithmétiques unaires