C++ Code nach Java übersetzen

Status
Nicht offen für weitere Antworten.

gewald

Mitglied
Hallo,

ich habe folgendes Problem...ich soll den unten stehenden C++ Code nach Java übersetzen.

Code:
void decode(char pwd[8],int Position,char ch[8])
{
   _int64 ihlp;
   memcpy(&ihlp,pwd,8);
   if (Position%2)
      ihlp=ihlp>>Position%14;
   else
   {
      ihlp=ihlp<<Position%15;
      ihlp=ihlp>>16;
   }
   memcpy(ch,&ihlp,6);
}

Allerdings hab ich keine Ahnung, wie die Sache mit dem memcpy und dem Adressoperator & in Java mache.
Kann mir da jemand helfen?

Grüsse

GEwald
 

semi

Top Contributor
Versuche das hier
Code:
void decode(char pwd[],int Position, char ch[])
{
  long ihlp = 0;
  for(int i=0, sh=56; i<8; i++, sh-=8)
    ihlp |= pwd[i]<<sh;

  if (Position%2 != 0)
    ihlp=ihlp>>Position%14;
  else
  {
    ihlp=ihlp<<Position%15;
    ihlp=ihlp>>16;
  }

  for(int i=0, sh=56; i<6; i++, sh-=8)
    ch[i] = (char)((ihlp>>sh) & 0xFF);
}
Schön umständlich, was? :roll:
 

KSG9|sebastian

Top Contributor
Adressoperator gibt es nicht! Java kennt kein Call by Reference. Dazu steht im FAQ-Forum ein guter Beitrag.

Was macht memcpy? Nen String kopieren? Das geht in Java so:

Code:
String s1 = "String123;
String s2 = new String(s1);
 
G

Guest

Gast
semi hat gesagt.:
Versuche das hier
Code:
void decode(char pwd[],int Position, char ch[])
{
  long ihlp = 0;
  for(int i=0, sh=56; i<8; i++, sh-=8)
    ihlp |= pwd[i]<<sh;

  if (Position%2 != 0)
    ihlp=ihlp>>Position%14;
  else
  {
    ihlp=ihlp<<Position%15;
    ihlp=ihlp>>16;
  }

  for(int i=0, sh=56; i<6; i++, sh-=8)
    ch[i] = (char)((ihlp>>sh) & 0xFF);
}
Schön umständlich, was? :roll:

Vielen Dank für die schnelle Anwort!!! Aber irgendwie klappt das noch nicht...denn

Code:
char[] buffer = new char[6];
decodePedb("\000`f\354\255ML\014\000QQ\000", 13,buffer)
System.out.println(new String(buffer));

sollte eigentlich 3combb ergeben...gibt aber ÿÿÿÿÿý :)
Was genau machen denn die beiden for-Schleifen?
 

semi

Top Contributor
? :bahnhof:

void decode(char pwd[8],int Position,char ch[8])

Jetzt bin ich verwirrt. In Deinem Code hast Du ein Array bzw. einen String mit der Länge 8
und in dem Aufruf sind es 12 Zeichen. (_int64 bzw. long ist auch 8-Byte groß)

Was soll bei "abcd1234" rauskommen?
 

semi

Top Contributor
Achso die Schleifen...
Die erste schiebt ein Zeichen nach dem anderen in ein Long,
die zweite wieder umgekehrt.
 

gewald

Mitglied
semi hat gesagt.:
Achso die Schleifen...
Die erste schiebt ein Zeichen nach dem anderen in ein Long,
die zweite wieder umgekehrt.

Das heisst, es müsste eigentlich funktionieren...dann hab ich wahrscheinlich ein anderes Problem...
der zu dekodierende String kommt aus einer Datenbank. Die Tabelle ist UFT-8 kodiert. Kann das das Problem sein?
 

semi

Top Contributor
Ehmm.. ja, ich denke schon. In welcher Form kriegst Du die Daten?
Mit UTF habe ich eigentlich noch nie was gemacht. Zumindest nicht direkt.
 

gewald

Mitglied
Genau so "\000`f\354\255ML\014\000QQ\000" und das soll mit der Dekodierroutine zu 3combb werden.
Leider hab ich auch nicht viel Erfahrung mit UFT.
 

semi

Top Contributor
Habe es in C++ versucht. Läuft.
Verdammt, das ist das kranke UTF-16. In Java muss man ziemlich große Verrenkungen
machen um die UTF-Literale korrekt zu schreiben. Ich habe mich damit noch nie
beschäftigt.

Kannst Du das ganze bereits aus der Datenbank als byte[] auslesen bzw.
statt ResultSet.readString(), ResultSet.getCharacterStream()?

Ist schon 'ne harte Nuss, wenn man keine Ahnung hat. ???:L
 

semi

Top Contributor
Eins vorweg, UTF ist auch Neuland für mich.

Zuerst mal das CharacterStream in byte[] konvertieren.
Code:
ByteArrayOutputStream out = ByteArrayOutputStream();
int c;
while((c = charStream.read()) != -1) {
  out.write(c);
}
byte []utfBytes =  c.toByteArray();
Sag' bitte Bescheid, was in dem Array steht, damit ich die decode(...) Methode
testen kann.

---------------

Falls jemand eine einfachere Lösung kennt, dann her damit.
Lasst uns nicht dumm sterben. :wink:
 

gewald

Mitglied
In dem Array steht jetzt [B@fa7e74 wenn ich dann noch
Code:
new String(utfBytes);
ausgebe dann bin ich wieder bei dem \000`f\354\255ML\014\000QQ\000
 

The_S

Top Contributor
Hab das jetzt nur so überflogen, aber versuchts mal mit dem InputStreamReader, wenn das irgendwie geht. Weil bei dem kannst du nämlich einstellen, in welcher Codierung er lesen soll.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
G c code übersetzen nach java Allgemeine Java-Themen 2
C C-ähnlichen Code nach speziellen Informationen durchsuchen Allgemeine Java-Themen 2
G Code nach Schleifen und Verzweigungen durchsuchen Allgemeine Java-Themen 6
C BigInteger nach ASCII Code in String Allgemeine Java-Themen 11
B UML: Main classe verschwindet nach code generierung nicht?! Allgemeine Java-Themen 4
J Code-Sequenz nach 10 sec abbrechen? Allgemeine Java-Themen 3
A Code "umwandeln" von JDK 1.4.2 nach JDK 1.3.1 Allgemeine Java-Themen 3
M Unsicher, ob das Code richtig ist Allgemeine Java-Themen 4
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
schemil053 Methoden Code-Verbesserung Allgemeine Java-Themen 2
D Webarchive (war): Code verschleiern Allgemeine Java-Themen 7
D Compiler-Fehler child process exited with code 1 Allgemeine Java-Themen 1
Queenman Interface Mein Microsoft Visual Studio Code zeigt komische Dinge & Menüs an Allgemeine Java-Themen 9
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
berserkerdq2 Versteht jemand, was diese beiden Zahlen bei dem IJVM Code zu bedeuten haben? Allgemeine Java-Themen 10
OnDemand Releaseversion Tag in Code Allgemeine Java-Themen 5
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
F Code auslagern Allgemeine Java-Themen 5
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
V Hilfe mit Java Code Allgemeine Java-Themen 4
S Processing Java Code verstehen Allgemeine Java-Themen 4
A code wird nicht ausgeführt Allgemeine Java-Themen 3
B Bitte um Code Erklärung Allgemeine Java-Themen 5
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
N Regulären Ausdruck in normalen Java-Code umwandeln Allgemeine Java-Themen 12
OnDemand Clean Code oder Allgemeine Java-Themen 5
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
J Simple Date Format Alternativen bitte um Code Allgemeine Java-Themen 14
AGW in Java-Code plötzlich ein paar Wörter in Rot Allgemeine Java-Themen 2
L Best Practice Auslagerung von Code = Performance Optimierung? Allgemeine Java-Themen 4
H Precompilierten code ansehen Allgemeine Java-Themen 3
R Wo müsste ich im Code eine Änderung vornehmen? Allgemeine Java-Themen 6
L Ausgabe von in Echtzeit ausgeführten Code Allgemeine Java-Themen 9
Drachenbauer Wie kann ich die menge an code reduzieren? Allgemeine Java-Themen 28
Thallius Warum ist dieser Code OS abhängig? Allgemeine Java-Themen 10
S Code Erklärung Allgemeine Java-Themen 21
B Pausem im Code Allgemeine Java-Themen 2
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
L Eclipse Java Code ausführen Allgemeine Java-Themen 18
F Code in Klassen bringen Allgemeine Java-Themen 4
S Gibt es eigentlich Java Source Code Interpreter..? Allgemeine Java-Themen 13
J JUnit - Auslassen von Code Allgemeine Java-Themen 25
F Klassen Spaghetti Code Vermeidung Allgemeine Java-Themen 16
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
J Code Page characters darstellen Allgemeine Java-Themen 12
J wie sollte man sinnvoll seinen Code aufteilen Allgemeine Java-Themen 6
I Python Code in Java Code Allgemeine Java-Themen 9
M Java (GUI) Code verdoppeln oder anzeige mehrmals anzeigen? Allgemeine Java-Themen 8
N Wie öffne ich einen runtergeladadenen Code in IntelliJ Allgemeine Java-Themen 3
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
O Standard library nativer C code Allgemeine Java-Themen 1
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
S Java Editor Bekomme bei der Code-Vervollständigung die Zeichen &#8203; Allgemeine Java-Themen 3
N Morse Code decoder Allgemeine Java-Themen 9
O Erste Schritte Benzinverbrauch Code Hilfe Allgemeine Java-Themen 3
S Eclipse exit code 805306369 Allgemeine Java-Themen 1
Pataraca Vererbung Code einbinden Allgemeine Java-Themen 3
Developer_X Website HTML Code von HTTPS URL laden Allgemeine Java-Themen 0
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
S Code 'innerhalb' des synchronen Bereichs einer BlockingQueue ausfuehren..? Allgemeine Java-Themen 7
F Verständlichkeitsproblem bei Java Code?! Allgemeine Java-Themen 2
G Eclipse Eclipse: Unreachable code Allgemeine Java-Themen 16
P Java Android Code in IOS compilieren? Allgemeine Java-Themen 9
C Code vereinfachen Allgemeine Java-Themen 2
T Hilfe bei Code Allgemeine Java-Themen 3
R Java-Code für folgene Aufgabe? Allgemeine Java-Themen 8
Prafy Best Practice Code Refaktorisierung Allgemeine Java-Themen 7
WetWer Was bedeutet/macht ein Exit-Code Allgemeine Java-Themen 1
D Code für bereitgestellte Methoden Allgemeine Java-Themen 1
perlenfischer1984 HTML Code decodieren Allgemeine Java-Themen 2
C ASCII-Code in Java Allgemeine Java-Themen 1
J Java-Code in DLL packen Allgemeine Java-Themen 5
J LWJGL 3 Error Code 1282 Allgemeine Java-Themen 4
0 Code startet nicht (Keine Warnung/Fehlermeldung) Allgemeine Java-Themen 4
A Frage zu meinem Code Allgemeine Java-Themen 2
B Code generierung Velocity Templates Telosys Allgemeine Java-Themen 1
E Fehlermeldung vor dem Programm code Allgemeine Java-Themen 1
B JAVA - mehrere Clienten gleichzeitig starten. Nicht bei Code! Allgemeine Java-Themen 3
Fischkralle Ausführen von fremden Code Allgemeine Java-Themen 14
wolfgang63 Code snipped Software Allgemeine Java-Themen 1
L Eclipse Editieren des Code templates für Override methods Allgemeine Java-Themen 2
J Java code "plugin" fähig machen Allgemeine Java-Themen 4
alderwaran .jar Code Signing, User-Keystore und Fragen dazu Allgemeine Java-Themen 0
Thallius Wie verstecke ich meinen private Key am besten im Code? Allgemeine Java-Themen 10
A Thread: Code paralell ausführen in mehreren Instanzen Allgemeine Java-Themen 1
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
N HTTP response code: 403 Allgemeine Java-Themen 3
D Code bitte mit 19 stelligen Zahlen kompatibel machen Allgemeine Java-Themen 5
D Java Compiler code referencen Allgemeine Java-Themen 0
B Fehler im Java-Code Allgemeine Java-Themen 4
A PHP-Code zu Java-Code Allgemeine Java-Themen 5
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
X Was macht folgender Code!? Allgemeine Java-Themen 6
K Code zu einem Projekt entschluesseln Allgemeine Java-Themen 15
H Java Leistungssteigerung durch Code Anpassung Allgemeine Java-Themen 5
Fab1 Best Practice Vorgehensweise bestehenden Code/Programm verschönern Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben