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...")
 
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
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):
+
#REDIRECT [[Porre a 0 oppure a 1 un bit di un numero]]
'''Public Sub Main()
 
 
  Dim i, ris As Integer
 
  Dim bit As Byte
 
 
 
<FONT Color=gray>' ''Valore iniziale:''</font> 
 
  i = 888
 
   
 
<FONT Color=gray>' ''Del valore iniziale pone a 1 l'ottavo bit (indice 0 - 31):''</font>
 
  bit = 7
 
 
 
  ris = i Or (1 * CInt(2 ^ bit))  <FONT Color=gray>' ''oppure così: '''ris = i Or Shl(1, CInt(bit))'''''</font>
 
   
 
  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
 
 
 
<FONT Color=gray>' ''Valore iniziale:''</font> 
 
  i = 65535
 
   
 
<FONT Color=gray>' ''Del valore iniziale pone a 0 il nono bit (indice 0 - 31):''</font>
 
  bit = 8
 
 
 
  ris = i And (-1 Xor (1 * CInt(2 ^ bit)))
 
   
 
  Print ris
 
 
'''End'''
 

Versione attuale delle 11:47, 20 set 2022