Differenze tra le versioni di "Porre a 1 un bit di un numero"

Da Gambas-it.org - Wikipedia.
(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...")
 
Riga 1: Riga 1:
 
Per porre a 1 il bit di un valore numerico, possiamo adottare il seguente codice (per valori non superiori a 32 bit):
 
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()
+
  '''Public''' Sub Main()
 
   
 
   
 
   Dim i, ris As Integer
 
   Dim i, ris As Integer
Riga 21: Riga 21:
 
===Porre a zero un bit===
 
===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):
 
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()
+
  '''Public''' Sub Main()
 
   
 
   
 
   Dim i, ris As Integer
 
   Dim i, ris As Integer

Versione delle 18:15, 2 mar 2016

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