====== Занятие 06.11.13 ======
Рассмотрим следующую задачу:
===== Задача =====
Написать программу, позволяющую переводить целые положительные числа из десятеричной системы счисления в шестнадцатеричную и обратно.
===== Решение =====
Создадим класс ''Notations'', методы которого будут осуществлять нужные нам преобразования. Методы в классе будут статическими.
package com.nsunc.wiki.penname;
public class Notations {
static String from10to16(int n) {
String s = "";
int a = n;
int r;
do {
r = a % 16;
a = a / 16;
if (r < 9)
s = Integer.toString(r) + s;
else
s = String.valueOf((char) (((int) 'A') + r - 10)) + s;
} while (a != 0);
return s;
}
static int from16to10(String s) {
int n = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) >= '0' && s.charAt(i) <= '9')
n = n + ((int) s.charAt(i) - (int) '0')
* (int) Math.pow(16, s.length() - 1 - i);
else if (s.charAt(i) >= 'A' && s.charAt(i) <= 'F')
n = n + ((int) s.charAt(i) - (int) 'A' + 10)
* (int) Math.pow(16, s.length() - 1 - i);
else
return -1;
}
return n;
}
}
===== Задание =====
- Дописать в классе ''Notations'' методы ''from10to8'' и ''from8to10'', позволяющие переводить целые положительные числа из десятичной системы счисления в восьмеричную и обратно.
- Придумать и реализовать общие методы, позволяющие осуществлять прямой и обратный переводы целых чисел из десятичной системы счисления в систему счисления с произвольным основанием //X// таким, что 2 ≤ X ≤ 16.
;#;
[[java:elective|Список занятий]]
;#;