мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?
no way to compare when less than two revisions

Различия

Показаны различия между двумя версиями страницы.


java:elective:lesson_11_06_13 [04/11/2013 19:44] (текущий) – создано nbazhenov
Строка 1: Строка 1:
 +====== Занятие 06.11.13 ======
  
 +Рассмотрим следующую задачу:
 +
 +===== Задача =====
 +
 +Написать программу, позволяющую переводить целые положительные числа из десятеричной системы счисления в шестнадцатеричную и обратно.
 +
 +
 +===== Решение =====
 +
 +Создадим класс ''Notations'', методы которого будут осуществлять нужные нам преобразования. Методы в классе будут статическими.
 +
 +<code java>
 +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;
 + }
 +}
 +
 +</code>
 +
 +===== Задание =====
 +
 +  - Дописать в классе ''Notations'' методы ''from10to8'' и ''from8to10'', позволяющие переводить целые положительные числа из десятичной системы счисления в восьмеричную и обратно.
 +  - Придумать и реализовать общие методы, позволяющие осуществлять прямой и обратный переводы целых чисел из десятичной системы счисления в систему счисления с произвольным основанием //X// таким, что <html>2&nbsp;&le;&nbsp;<i>X</i>&nbsp;&le;&nbsp;16</html>.
 +
 +;#;
 +[[java:elective|Список занятий]]
 +;#;