Indice

ugBASIC Manuale Utente

NOT

SINTASSI

   = NOT x

SCOPO

Esegue una negazione logica su due espressioni, come negazione bit a bit. Per i confronti gestiti come risultato booleano (TRUE o FALSE), result è TRUE se entrambe le espressioni sono valutate in modo diverso. La seguente tabella mostra come viene determinato il risultato:

'NOT TRUE = FALSE' 'NOT FALSE = TRUE'

In generale, l'operatore NOT esegue una negazione bit a bit dei bit dell'espressione numerica e imposta il bit corrispondente in base alla tabella precedente.

Nota che ugBASIC utilizza la convenzione, molto comune nei BASIC degli anni '70 e '80, di considerare la logica booleana come implementata tramite il cosiddetto “complemento a due”.

In altre parole, il valore FALSE è associato a un numero composto da tutti 0, in termini di bit. Il valore TRUE è, invece, associato a un numero composto da tutti 1, sempre in termini di bit.

Secondo la rappresentazione del complemento a 2, un numero composto da tutti 1 è sempre equivalente al numero -1, indipendentemente dal numero di bit di cui è composto, mentre un numero composto da tutti 0 è sempre equivalente a zero.

Secondo questa convenzione, c'è una coincidenza tra operazioni bit a bit e logiche: infatti, un NOT bit a bit, applicato a tutti i bit del numero, sarà equivalente all'operazione logica.

Poiché gli operatori logici e bitwise hanno una precedenza inferiore rispetto ad altri operatori aritmetici e relazionali, tutte le operazioni bitwise devono essere racchiuse tra parentesi per garantire risultati accurati.

ESEMPIO

  IF NOT x THEN
      PRINT "x is FALSE"
  ELSE
      PRINT "x is TRUE"
  ENDIF

ABBREVIAZIONE

 Nt

DISPONIBILE SU

PROBLEMI?

Se si riscontra un problema nell'utilizzare questo comando, se si ritiene che vi sia un bug oppure che la spiegazione sia poco chiara, è possibile aprire una segnalazione per questa parola chiave su GitHub. Grazie!

POWERED BY