Porre a 1 un bit di un numero

Da Gambas-it.org - Wikipedia.
Versione del 2 mar 2016 alle 17:14 di Vuott (Discussione | contributi) (Creata pagina con "Per porre a 1 il bit di un valore numerico, possiamo adottare il seguente codice (per valori non superiori a 32 bit): '''Public Sub Main() Dim i, ris As Integer Dim bit...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Per porre a 1 il bit di un valore numerico, possiamo adottare il seguente codice (per valori non superiori a 32 bit):

Public Sub Main()

 Dim i, ris As Integer
 Dim bit As Byte
 
' Valore iniziale:  
  i = 888
   
' Del valore iniziale pone a 1 l'ottavo bit (indice 0 - 31):
  bit = 7
  
  ris = i Or (1 * CInt(2 ^ bit))   ' oppure così: ris = i Or Shl(1, CInt(bit))
   
  Print ris
  
End


Porre a zero un bit

Se, invece, si vuole porre a zero un bit di un numero, potremo utilizzare il sguente codice (per valori non superiori a 32 bit):

Public Sub Main()

 Dim i, ris As Integer
 Dim bit As Byte
 
' Valore iniziale:  
  i = 65535
   
' Del valore iniziale pone a 0 il nono bit (indice 0 - 31):
  bit = 8
  
  ris = i And (-1 Xor (1 * CInt(2 ^ bit)))
   
  Print ris

End