0

私は2つのコード片を持っています。1 つは暗号化し、もう 1 つは復号化します。しかし、復号化コードは私も欲しいように機能していないようです:/

暗号化:letter = ((letterInt + 1) * constant) modulus 29

暗号化コード行:

bogstaver[i-1] = alfabet.get(((alfabet.indexOf(bogstaver[i - 1]) + 1) * C) % 29);

復号化:letter = Int / constant, while (int / constant) modulus 1 = 0

復号化コード:

D = alfabet.indexOf(bogstaver[i - 1]);

while ((D / C) % 1 != 0){
    D = D + 29;
}           
bogstaver[i - 1] = alfabet.get((D / C) - 1);

暗号化に使用した文字 ( ) は、復号化後の文字 ( )letterIntと同じではありませんletter

ところで、alfabetList29 文字の

4

1 に答える 1

1

このコードは何を(D / C)%1することになっていますか? モジュロ演算子が浮動オペランドで機能することは確かですか? 私は Android 開発者ではありませんが、モジュロがカウントされる前に括弧内の式が整数にキャストされていないことを確認してください。その場合、while ループは条件の最初の評価後に終了します。条件を次のように書き換えることができます。

while(D % C != 0){
...
}
于 2013-05-11T13:56:26.483 に答える