Subtrahieren von char int : möglich verlustbehaftete Konvertierung int zu char

Ich versuche zu subtrahieren int von char in einem typischen Kryptographie wichtige Frage, aber ich bin mit den oben genannten Fehler in den folgenden statements:

char ch = (int)encrypted_message.charAt(i) + key[index];
if (ch > 122)
    ch = (int)ch - 26;

key[] array hält Ziffern der Schlüssel und der Typ int.

Wie drehen der char erfolgreich?

Bitte um Hilfe!!

  • Was ist Ihre Frage? Wenn Sie versuchen, passen auf eine 32-bit-Datentyp in einen 16-bit-Datentyp, es wird das Risiko von verlorenen Informationen. Beachten Sie, dass alle arithmeitc Operationen in Java wird immer die Rendite, die mindestens eine int da es keine primitive für boolean, byte, char und short in der JVM.



One Reply
  1. 5

    int größer ist als char, aber das Ergebnis Ihrer operation eingegeben wird int (die man dann speichern in einer char). Damit der compiler warnt Sie Sie verlieren möglicherweise Daten speichern int Wert in eine char variable.

    Statt, sicherzustellen, das Ergebnis ist ein char, das ist ein bisschen wie ein Schmerz, weil + und - mit char Werten wird eine int, so müssen wir Darsteller:

    char ch = (char)(encrypted_message.charAt(i) + key[index]);
    if (ch > 122)
        ch = (char)(ch - 26);

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.