====== Занятие 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|Список занятий]] ;#;