Sottrazione con operatori bitwise

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca

Il codice per operare una sottrazione con operatori bitwise fra due numeri, considerati come fossero binari, va impostato in modo tale che innanzitutto effettui lo XOR fra i due operandi; poi deve eseguire il NOT bitwise del primo operando. Infine deve effettuare l'AND fra i due operandi, e uno shift a sinistra.


Mostriamo il codice esemplificativo:

Public Sub Main()
 
 Dim minuendo, sottraendo, differenza As Integer
 
 minuendo = 240
 sottraendo = 15
  
 differenza = sottrazione_binaria(minuendo, sottraendo)
   
 Print differenza
  
End


Private Function sottrazione_binaria(op1 As Integer, op2 As Integer) As Integer
 
 Dim sb, prestito As Integer
 
 prestito = 1
 
 While prestito <> 0
   sb = op1 Xor op2
   op1 = Not op1
   prestito = op1 And op2
   prestito = prestito * CInt(2 ^ 1)
   op1 = sb
   op2 = prestito
 Wend
  
 Return op1
 
End