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