#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i=-5;
while(~(i))
{
cout<<i;
++i;
}
}
L'uscita è -5, -4, -3, -2. Non dovrebbe stampare valori fino a -1? Perché è solo fino a -2. E, per favore, spiegami la differenza tra gli operatori "non" e "negazione". Quando scrivo un programma, sono la fonte di bug.NOT (~) vs NEGATION (!)
while(i)
So che la condizione del ciclo sarà vero per i positivi e negativi del tranne 0.
while(!i) vs while(~i)
Per quali valori di 'i' due precedenti cicli vengono eseguiti?
Se non si ricorda la differenza tra '!' e '' ~, l'uso '!'. È quasi sempre quello che vorresti. '~' è raramente necessario. – duskwuff
Suggerimento che potrebbe esserti utile, poiché la risposta corretta era già stata pubblicata. Per i tipi interi (modulari), '~ i == -i - 1'. –
Gli operatori hanno effettivamente nomi in C++: '!' È 'not' e' ~ 'è' compl'. (Minuscolo, non maiuscolo) – MSalters