Я работаю над своим проектом, чтобы создать преобразование между значением char и значением int, следуя символам компьютера MIX (на основе базы 56). Оказалось, что я нахожусь с преобразованием из char в значение int с помощью метода getNumbericVale(), но я не мог определить резервное преобразование.Как преобразовать значение int в значение char в java
Это мой код ниже
final char c1,c2,c3,c4,c5;
c1 = 'I';
c2 = 'F';
c3 = 'E';
c4 = 'B';
c5 = 'A';
int c1Cal = Character.getNumericValue('I') - Character.getNumericValue('A') + 1;
int c2Cal = Character.getNumericValue('F') - Character.getNumericValue('A') + 1;
int c3Cal = Character.getNumericValue('E') - Character.getNumericValue('A') + 1;
int c4Cal = Character.getNumericValue('B') - Character.getNumericValue('A') + 1;
int c5Cal = Character.getNumericValue('A') - Character.getNumericValue('A') + 1;
//encoded
int b1 = (int) (c5Cal*Math.pow(56, 0));
int b2 = (int) (c4Cal*Math.pow(56, 1));
int b3 = (int) (c3Cal*Math.pow(56, 2));
int b4 = (int) (c2Cal*Math.pow(56, 3));
int b5 = (int) (c1Cal*Math.pow(56, 4));
//Decoded number to character
System.out.println("Original: "+c1+c2+c3+c4+c5);
System.out.println("Encoded: "+(b1+b2+b3+b4+b5));
System.out.println("decoded: "+???);
Результат должен быть символ 'IFEBA' снова. В лист присваивания указано, что вам нужно использовать остаток, чтобы извлечь наименьшее числовое и целочисленное деление для перемещения всех оставшихся цифр на одно место.
Какой смысл использовать 'Character.getNumericValue()'? Следующий результат дает тот же результат и намного короче: 'int c1Cal = 'I' - 'A' + 1;' – Andreas
Вам нужно будет декодировать ваш 'int' с обратной обработкой, которую вы использовали для ее кодирования. ** Подсказка **: Подумайте о * логарифмах *. Кроме того, ваше сообщение будет быстро переполняться (поскольку Java 'int' - 32 бита, это всего 5.5 символа в базе 56). –