下記のスクリーンショットのように、Javaで16進数(16進数)のXor計算をプログラミングするには?最初の入力はキー、2番目の入力は文字列、3番目の入力は出力です。実際に私はたくさんのスクリプトを試してみましたが、私はその問題を探検しましたが、結果はこの計算機のようには現実的ではありません。助けてください。 Online Xor Calculator と Windows programmer mode calculatorプログラミング方法Java計算機のXOR計算機の16進数16?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ImageView sharecode = (ImageView) findViewById(R.id.sharecode);
final TextView finalcode = (TextView) findViewById(R.id.tvfinalcode);
final Button calculatcode = (Button) findViewById(R.id.btncalculatcode);
final EditText tbpin = (EditText) findViewById(R.id.etPin);
final EditText tbappcode = (EditText) findViewById(R.id.etappcode);
tbappcode.setFilters(new InputFilter[]{new InputFilter.AllCaps()});
sharecode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (finalcode.getText().equals("")) {
Toast.makeText(MainActivity.this, "There is no code to share it!", Toast.LENGTH_LONG).show();
} else {
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "Application Code is:" + finalcode.toString());
sendIntent.setType("text/plain");
startActivity(sendIntent);
}
}
});
calculatcode.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (tbpin.getText().toString().equals("")) {
Toast.makeText(MainActivity.this, "Please Enter PIN Code!", Toast.LENGTH_LONG).show();
} else if (tbappcode.getText().toString().equals("")) {
Toast.makeText(MainActivity.this, "Please Enter Last part of Appcode Code!", Toast.LENGTH_LONG).show();
} else {
String a = tbappcode.getText().toString();
String b = tbpin.getText().toString();
int[] encrypted = encrypt(a, b);
for (int i = 0; i < encrypted.length; i++)
finalcode.setText(decrypt(encrypted, b));
}
}
}
);
}
private static int[] encrypt(String str, String key) {
int[] output = new int[str.length()];
for (int i = 0; i < str.length(); i++) {
int o = (Integer.valueOf(str.charAt(i))^Integer.valueOf(key.charAt(i % (key.length() - 1)))) + '0';
output[i] = o;
}
return output;
}
private static String decrypt(int[] input, String key) {
String output = "";
for (int i = 0; i < input.length; i++) {
output += (char) ((input[i] - 48)^(int) key.charAt(i % (key.length() - 1)));
}
return output;
}
コードはどこですか? –
[mcve]を投稿して、あなたが得ている出力を表示してください。 「うまくいかない」とは、何が起こっているのかについての十分な説明ではありません。 –
結果は添付された画像に似ているはずです。 –