MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 09/03/10, 14:11:30
Ariel-StaFe Ariel-StaFe is offline
Senior Member
 
Fecha de Ingreso: nov 2007
Localización: Santa Fe - Argentina
Mensajes: 321
XOR en ABAP

Estimados:
Tengo que resolver un algoritmo de encriptación que me solicitan, donde utilizan el XOR entre dos nros enteros (de 3 digitos).
Como puedo resolverlo en ABAP ?.
He probado con el BIT-XOR pero requiere que los campos sean del tipo X o XSTRING y no me da el resultado esperado.
Alguien me podria dar una idea ?
Desde ya muchas gracias.
Ss
Responder Con Cita
  #2  
Viejo 09/03/10, 16:15:57
Ariel-StaFe Ariel-StaFe is offline
Senior Member
 
Fecha de Ingreso: nov 2007
Localización: Santa Fe - Argentina
Mensajes: 321
XOR en ABAP - Resuelto

Bueno, habia que probar.
Por si alguien lo necesita.
Asignar las variables enteras a variables de tipo XSTRING
Hacer el BIT-XOR con las variables XSTRING,
El resultado (en otra var xstring) asignarlo a una variable entera y listo.
Ss
Responder Con Cita
  #3  
Viejo 09/03/10, 17:45:07
Ariel-StaFe Ariel-StaFe is offline
Senior Member
 
Fecha de Ingreso: nov 2007
Localización: Santa Fe - Argentina
Mensajes: 321
XOR en ABAP - Reabierto

Estimados:
Lamentablemente no es la solución, ya que hay casos donde no funciona de esa manera.
Por lo que si alguien tiene otra respuesta o salida para esto se lo agradeceré
Ss
Responder Con Cita
  #4  
Viejo 12/03/10, 03:18:45
Avatar de abapedro
abapedro abapedro is offline
Member
 
Fecha de Ingreso: mar 2007
Mensajes: 83
Funcion para implementar XOR de enteros

Hola Ariel-Stafe,

Me pareció interesante el reto del XOR y creé una función que lo implementa:

FUNCTION ZXOR.
*"----------------------------------------------------------------------
*"*"Interfase local
*" IMPORTING
*" REFERENCE(ZNUMA) TYPE INTEGER
*" REFERENCE(ZNUMB) TYPE INTEGER
*" EXPORTING
*" REFERENCE(ZNUMC) TYPE INTEGER
*"----------------------------------------------------------------------

data: z_int type integer.
data: z_potencia type integer.
data: z_numa type integer.
data: z_numb type integer.


z_int = 9.
znumc = 0.
z_numa = znuma.
z_numb = znumb.

do 10 times.

z_potencia = 2 ** z_int.
if ( z_numa ge z_potencia ) and ( z_numb ge z_potencia ).
z_numa = z_numa - z_potencia.
z_numb = z_numb - z_potencia.
elseif ( z_numa ge z_potencia ).
z_numa = z_numa - z_potencia.
znumc = znumc + z_potencia.
elseif ( z_numb ge z_potencia ).
z_numb = z_numb - z_potencia.
znumc = znumc + z_potencia.
endif.
z_int = z_int - 1.

enddo.

ENDFUNCTION.

Seguramente se puede pulir un poco, pero así opera bien hasta donde entiendo.

Como puede observar, esta hecha para números de solo 3 cifras. Si se quisiera utilizar para números mayores que 1023, habría que pasar el z_int a 10 (o a mayor valor) e igualmente el "do" sería "do 11 times", etc.

Espero que le sirva.

Abapedro
Responder Con Cita
  #5  
Viejo 16/03/10, 17:53:05
Ariel-StaFe Ariel-StaFe is offline
Senior Member
 
Fecha de Ingreso: nov 2007
Localización: Santa Fe - Argentina
Mensajes: 321
Que tal ?
Groso lo tuyo Abapedro...
Ya lo habia podido resolver, en realidad el BIT-XOR actua perfecto pero se agradece y tendré en cuenta tu función para cualquier otra oportunidad.
Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 21:19:04.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web