2016-02-01 2 views
0

Я работаю над своим проектом, чтобы создать преобразование между значением 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' снова. В лист присваивания указано, что вам нужно использовать остаток, чтобы извлечь наименьшее числовое и целочисленное деление для перемещения всех оставшихся цифр на одно место.

+0

Какой смысл использовать 'Character.getNumericValue()'? Следующий результат дает тот же результат и намного короче: 'int c1Cal = 'I' - 'A' + 1;' – Andreas

+1

Вам нужно будет декодировать ваш 'int' с обратной обработкой, которую вы использовали для ее кодирования. ** Подсказка **: Подумайте о * логарифмах *. Кроме того, ваше сообщение будет быстро переполняться (поскольку Java 'int' - 32 бита, это всего 5.5 символа в базе 56). –

ответ

0

Попробуйте использовать что-то вроде этого для всех ваших int:

int a = 4; 
    char b = (char) a; 
Смежные вопросы