Здравствуйте, переписываю XOR с языка C на Java
C:
#include <stdint.h>
#include <string.h>
#include <stdio.h>
static const uint8_t KEY [] = {23,45,67,84,34,32,56,78,45,67,89,23,45,67,89,34,5,6,45,34,35,0};
int main(int ac, char **av) {
if(ac > 0) {
printf("{");
int i = 0, j = 0;
for(i=0;i<strlen(av[1]);i++) {
if(KEY[j] == 0) j = 0;
char c = av[1][i] ^ KEY[j++];
printf("0x%02X,",c);
}
printf("0}\n");
}
return 0;
}
Запутался, как сделать аналогию в строчке
char c = av[1][av] ^ KEY[j++];
На данный момент на Java код такой:
public class Main {
private static char[] KEY = {23,45,67,84,34,32,56,78,45,67,89,23,45,67,89,34,5,6,45,34,35,0};
public static void main(String[] args) {
System.out.println("Input: ");
String text = new Scanner(System.in).next();
System.out.print("{");
int j = 0;
for (char textChar : text.toCharArray()) {
if (KEY[j] == 0) j = 0;
char c = textChar ^ KEY[j++];
System.out.print(String.format("0x%02X,", c));
}
System.out.print("0}\n");
}
}
Операция XOR
присутствует в Java
и обозначается точно также как и в Си ^
, оно вернёт int
, а его необходимо приводить к char
в отличии от Си. Для вывода значения в String.format
необходимо подогнать размер выводимого значения.
public static void main(String[] args) {
System.out.println("Input: ");
String text = new Scanner(System.in).next();
System.out.print("{");
int j = 0;
for (char textChar : text.toCharArray()) {
if (KEY[j] == 0) j = 0;
int c = textChar ^ KEY[j++];
System.out.print(String.format("0x%02X,", c & 0xFF));
}
System.out.print("0}\n");
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В Java программе необходимо создать объект, но заранее не известно сколько и какие поля будут участвовать в конструктореЕсть ли возможность...
Есть Map<String, Object> с полями объектаНужно конвертировать эту мапу в объект так как это сделал бы Hibernate, используя колонки @Column(name="
Есть такой вот код, в условиях задачи сказано: Display the average and total rating of all student