Sottrazione con operatori bitwise

Da Gambas-it.org - Wikipedia.
Versione del 28 apr 2017 alle 02:08 di Vuott (Discussione | contributi) (Creata pagina con "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...")

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

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