Sottrazione con operatori bitwise: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
(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...")
 
Nessun oggetto della modifica
 
Riga 3: Riga 3:


Mostriamo il codice esemplificativo:
Mostriamo il codice esemplificativo:
  '''Public''' Sub Main()
  Public Sub Main()
    
    
   Dim minuendo, sottraendo, differenza As Integer
   Dim minuendo, sottraendo, differenza As Integer
    
    
    minuendo = 240
  minuendo = 240
    sottraendo = 15
  sottraendo = 15
    
    
    differenza = sottrazione_binaria(minuendo, sottraendo)
  differenza = sottrazione_binaria(minuendo, sottraendo)
      
      
    Print differenza
  Print differenza
    
    
  '''End'''
  End
   
   
   
   
  '''Private''' Function sottrazione_binaria(op1 As Integer, op2 As Integer) As Integer
  Private Function sottrazione_binaria(op1 As Integer, op2 As Integer) As Integer
    
    
   Dim sb, prestito As Integer
   Dim sb, prestito As Integer
    
    
  prestito = 1
  prestito = 1
    
    
  While prestito <> 0
  While prestito <> 0
        sb = op1 Xor op2
    sb = op1 Xor op2
        op1 = Not op1
    op1 = Not op1
        prestito = op1 And op2
    prestito = op1 And op2
        prestito = prestito * CInt(2 ^ 1)
    prestito = prestito * CInt(2 ^ 1)
        op1 = sb
    op1 = sb
        op2 = prestito
    op2 = prestito
  Wend
  Wend
    
    
  Return op1
  Return op1
    
    
  '''End'''
  End

Versione attuale delle 08:11, 3 set 2025

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