Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > JAVA
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-10-2008
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 23
Enan0 Va por buen camino
gracias egostar!!, mañana me voy a tomar el trabajo de leerla completita y bien detalladamente porque por una mirada rapida que le di. no entendi un pomo jejeje


saludos y gracias
Responder Con Cita
  #2  
Antiguo 17-10-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
El enlace que te muestra egostar, aconseja utilizar otro lenguaje (MASM) para crear una librería dinamica que contenga las funciones en ASM que requieres y luego exportar dichos métodos en JAVA. Es posible hacer lo mismo con Delphi; creas una DLL pegas la funcion que quieres exportar (ROL2) la defines como stdcall y la exportas. Pero creo que un simple ROL 2 no amerita tanto esfuerzo:

Código:
  private char ROL2(char Value)
  {
   return (Value << 2) | (Value >> 6);
  }
Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #3  
Antiguo 17-10-2008
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 23
Enan0 Va por buen camino
Hola cHaKall, gracias por la info. de todas maneras. de pura casualidad encontre
Código Delphi [-]
Integer.rotateLeft(int i, int dist);

es decir que ya existe la funcion...

gracias de todos modos y perdon por molestar..
Responder Con Cita
  #4  
Antiguo 19-10-2008
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 23
Enan0 Va por buen camino
Bueno la funcion anterior que les comente no funciona bien debido a que no completa los 8 bits (es decir no rellena con ceros entonces da un error importante)

cHacKall hice una modificacion a lo que me posteaste

Código Delphi [-]
private static  byte  ROL2(byte Value)
      {
           return (Value<<2) | (Value >> 8) ;
      }

Cambie tel Tipo de dato por Byte. pero de todas maneras sigo teniendo este error

Cita:
possible loss of precision
found : int
required: byte
return (Value<<2) | (Value >> 8) ;
y tiene una marca en el PIPE o MORE..

sabrias decirme a que se debe?

gracias
Responder Con Cita
  #5  
Antiguo 19-10-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Cita:
Empezado por Enan0 Ver Mensaje
...sabrias decirme a que se debe?...
Aunque mi definicion no sea la que vayas a leer en un libro te explico con mis palabras lo que sucede; el compilador esta realizando un casting implicito debido a la diferencia en los tipos de datos (entre el resultado de la operacion y el tipo retornado), los cuales varian en 24 bits y dicha diferencia puede representar una perdida de datos y por ende una falla en la presicion del resultado; como para nuestros fines solo nos interesa un ROL de 8 bits y estamos concientes que "no pasa nada" prueba ésto:

Código:
  private static  byte  ROL2(byte Value)
  {
   return (byte)((Value << 2) | (Value >> 6));
  }
Saludos
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx

Última edición por cHackAll fecha: 20-10-2008 a las 17:39:55. Razón: corrijo un valor copiado del post #7
Responder Con Cita
  #6  
Antiguo 19-10-2008
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 23
Enan0 Va por buen camino
gracias cHacKall. porque la verdad que estoy haciendo mis primeras armas en java. y justamente transcribiendo unas lineas de delphi. bueno hay muchos fundamentos de JAVA que se encuentras ausentes en mi.

gracias de nuevo y te comento como me resulto todo
saludos
Responder Con Cita
  #7  
Antiguo 19-10-2008
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 23
Enan0 Va por buen camino
Sigo con el mismo error... por mas que utilize el Typecast.

Cita:
possible loss of precision
found : int
required: byte
return (byte)(Value<<2) | (Value >> 8) ;
^
1 error
este es el codigo completo


Código Delphi [-]
public class rotate {

     private static  byte  ROL2(byte Value)
      {
           return (byte)(Value<<2) | (Value >> 8) ;
      }

    public rotate() {
    byte n;
    Integer i;
    n=83;
    n=ROL2(n);
    System.out.println(n);
    for (i=0;i<7;i++)        
        n=ROL2(n);
        System.out.println(n);
    }
    
    
}

uso el for para verificar que no haya perdida de datos. debido a que el programa original asi lo hace con el ROL del assembler. y se puede decir que siempre da el mismo resultado.. debido a que solo rota los 8 bits.

Utilizando el Integer.rotatetoleft() no funciona bien ya que no completa los 8 bits es decir No rellena con Ceros.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Boteable en assembler fide API de Windows 5 31-12-2006 20:05:31
Assembler desde delphi lookmydoom Varios 3 30-06-2006 21:56:20
assembler y el señor delphi fcran Varios 2 26-06-2006 11:32:14
Fuentes assembler o .asm Leomedellin Varios 7 19-04-2005 07:09:33
assembler en delphi fcran Varios 4 23-05-2003 07:35:44


La franja horaria es GMT +2. Ahora son las 11:18:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi