Strumenti Utente

Strumenti Sito


it:ugbasic:user:kw:not
Traduzioni di questa pagina:


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

  • Atari (400/800)
  • Atari XL/XE
  • Commodore 128 (MOS 8502)
  • Commodore 128 (Zilog Z80)
  • Commodore 64
  • Commodore 64+REU
  • TRS-80 Color Computer
  • TRS-80 Color Computer 3
  • ColecoVision
  • Amstrad CPC 664
  • Dragon 32
  • Dragon 64
  • Thomson MO5
  • Thomson MO5
  • Olivetti Prodest PC128
  • Commodore PLUS/4
  • SEGA SC-3000
  • SEGA SG-1000
  • VG-5000
  • Commodore VIC-20
  • ZX Spectrum 48

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