Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Como Realizar Una Resta De Dos Numeros Binarios???

Estas en el tema de Como Realizar Una Resta De Dos Numeros Binarios??? en el foro de Visual Basic clásico en Foros del Web. HOLA TENGO UN PROBLEMA DE ALGORISMO NESECITO HACER UN ALGORITMO QUE ME PERMIRA REALIZAR RESTAS DE DOS NUMEROS BINARIOS LA QUE ESTOY INTENTANDO HACER ES ...
  #1 (permalink)  
Antiguo 08/07/2008, 06:07
 
Fecha de Ingreso: julio-2008
Ubicación: Salto
Mensajes: 20
Antigüedad: 15 años, 10 meses
Puntos: 0
Como Realizar Una Resta De Dos Numeros Binarios???

HOLA TENGO UN PROBLEMA DE ALGORISMO NESECITO HACER UN ALGORITMO QUE ME PERMIRA REALIZAR RESTAS DE DOS NUMEROS BINARIOS

LA QUE ESTOY INTENTANDO HACER ES ESTO:

Dim num4 As String
Dim num5 As String
Dim num6 As String
Dim complemento As String
Dim i As Integer

num4 = txt4.Text
num5 = txt5.Text

For i = 1 To Len(num4)
If Mid(num4, i, 1) = "0" Then


EL PROBLEMA ESTA AQUI

ElseIf Mid(num4, i, 1) = "1" Then


Y AQUI
End If
Next
End Sub
OSE LO QUE ME ESTA FALTANDO ES ESTE ALGORISMO EL COMO HACER LA COMPARACION DE CADA NUMERO Y QUE ARRASTRE EL NUMERO DE ACARREO EN LA VARIABLE COMPLEMENTO
  #2 (permalink)  
Antiguo 08/07/2008, 13:31
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Como Realizar Una Resta De Dos Numeros Binarios???

¿Por qué no conviertes primero a decimal para hacer la resta?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 09/07/2008, 13:01
 
Fecha de Ingreso: julio-2008
Ubicación: Salto
Mensajes: 20
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Como Realizar Una Resta De Dos Numeros Binarios???

por que la idea es hacer la resta de numeros binarios por el metodo de complemento a dos y para hacerlo paso a paso nesecito poder sumar dos binario
  #4 (permalink)  
Antiguo 09/07/2008, 13:14
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Como Realizar Una Resta De Dos Numeros Binarios???

Cita:
Iniciado por tone02323 Ver Mensaje
por que la idea es hacer la resta de numeros binarios por el metodo de complemento a dos y para hacerlo paso a paso nesecito poder sumar dos binario
En ese caso lo primero que yo haría sería hacer el procedimiento para sumar dos binarios, si tienes problemas para realizar esa función, me avisas...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 09/07/2008, 14:41
 
Fecha de Ingreso: julio-2008
Ubicación: Salto
Mensajes: 20
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Como Realizar Una Resta De Dos Numeros Binarios???

esactamente ese es el problema tendria que hacer una funcion que realise la suma entre dos binarios pero no tengo idea como seri lo estoy intentando pero no me sale che si me podes dar una mano para hacer esto lo demas ya lo tengo echo solo me falta esto


DESDE YA GRACIAS
  #6 (permalink)  
Antiguo 09/07/2008, 14:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: Como Realizar Una Resta De Dos Numeros Binarios???

Escribí una función para sumar dos binarios, hice algunas pruebas y funciona. Es este:
Código:
Function Sumar(ByVal Num1 As String, ByVal Num2 As String) As String
If Len(Num1) > Len(Num2) Then Num2 = Right(String(Len(Num1), "0") & Num2, Len(Num1))
If Len(Num2) > Len(Num1) Then Num1 = Right(String(Len(Num2), "0") & Num1, Len(Num2))
Dim Looping As Integer
Dim Char1 As Byte
Dim Char2 As Byte
Dim Rest As Byte
Dim Result As String
For Looping = Len(Num1) To 1 Step -1
    Char1 = Val(Mid(Num1, Looping, 1))
    Char2 = Val(Mid(Num2, Looping, 1))
    If Char1 + Char2 + Rest > 1 Then
        Result = CStr((Char1 + Char2 + Rest) Mod 2) & Result
        Rest = 1
    Else
        Result = CStr(Char1 + Char2 + Rest) & Result
        Rest = 0
    End If
Next Looping
If Rest = 1 Then Result = "1" & Result
Sumar = Result
End Function
Espero que te sirva.
Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 16/07/2008, 08:57
 
Fecha de Ingreso: julio-2008
Ubicación: Salto
Mensajes: 20
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Como Realizar Una Resta De Dos Numeros Binarios???

muchas gracias la verdad me fue de una gran alluda perdona la demora pero estaba re complicado para conectarme ya que estaba adaptanto la funcion que me mandaste y otras cosas



lo unico que me queda pendiente para terminar de hacer el complemento a dos es despreciar el primer numero del resultado e la suma

tenes idea como podria hacerlo?

ose la idea es si me dio resultado 110001
que despreci el primer numero y de resultado 10001


si se te ocurre algo tirame el dato
  #8 (permalink)  
Antiguo 16/07/2008, 09:03
Avatar de Jhonnyf  
Fecha de Ingreso: septiembre-2007
Ubicación: Dentro de mi
Mensajes: 87
Antigüedad: 16 años, 7 meses
Puntos: 5
Respuesta: Como Realizar Una Resta De Dos Numeros Binarios???

Primero debes saber como sumar binarios de manera manual, para asi hacerlo en un software

Leete la primera parte
Convertir Decimales a Binarios de forma manual (sin calculadora ni nada)

Saludos

PD: ¿Que es "despreciar"?
  #9 (permalink)  
Antiguo 16/07/2008, 09:26
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Como Realizar Una Resta De Dos Numeros Binarios???

Como el resultado que te devuelve la función es un String, puedes hacerlo con Right:
Código PHP:
Valor Right(ValorLen(Valor) - 1
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:28.