сть несколько перевода чисел из любой системы счисления в десятичную. Один их них основан на алгоритме для вычисления значения многочлена в некоторой точке х, который носит название вычислительной схемы Горнера.
Для перевода целых чисел из десятичной системы счисления в систему счисления с основанием р:
Последовательно делить заданное число и получаемые целые части на новое основание счисления (р) до тех пор, пока целая часть не станет ровна нулю.
Полученные остатки от деления, представленные цифрами из нового счисления, записать в виде числа, начиная с последней целой части.
Пример 1. Перевести число 61 из десятичной системы счисления в двоичную:
(В дальнейшем будет использоваться краткая запись задания: 6110 = Х2)
61 = 30 • 2 + 1;
30 = 15 • 2 + 0;
15 = 7 • 2 + 1;
7 = 3 • 2 + 1;
3 = 1 • 2 + 1;
1 = 0 • 2 + 1.
ответ: 6110 = 1111012.
(Можно заметить, что рассмотренный «Пример 1» является противоположным «Примеру 1» рассмотренному в предыдущей теме. Таким образом, всегда можно делать проверку результата при переводе чисел из любой системы счисления в десятичную, и наоборот).
Пример 2. 27110 = Х8:
271 = 33 • 8 + 7;
33 = 4 • 8 + 1;
4 = 0 • 8 +4.
ответ: 27110 = 4178.
Пример 3. 1140610 = Х16:
11406 = 712 • 16 + 14;
712 = 44 • 16 + 8;
44 = 2 • 16 +12;
2 = 0 • 16 +2.
Учитывая, что в шестнадцатеричной системе счисления числу 14 соответствует цифра Е, а числу 12 цифра С, запишем ответ:
ответ: 1140610 = 2С8Е16.
(Будет не правильно записать ответ: 1140610 = 21281416)
В Паскале есть функция Round, которая использует следующий "стандартный" алгоритм округления: Если число положительное, то при величине его дробной части меньше 0.5, она просто отбрасывается, если больше - отбрасывается и к числу прибавляется единица. Если число отрицательное, то при абсолютной величине его дробной части меньше 0.5, она просто отбрасывается, если больше - из числа вычитается единица. А функция Trunc возвращает целую часть числа.
var p:real; begin Write('Введите число: '); Read(p); Writeln('Округленное значение: ',Round(p),', целая часть: ',Trunc(p)) end.
Объяснение:
сть несколько перевода чисел из любой системы счисления в десятичную. Один их них основан на алгоритме для вычисления значения многочлена в некоторой точке х, который носит название вычислительной схемы Горнера.
Для перевода целых чисел из десятичной системы счисления в систему счисления с основанием р:
Последовательно делить заданное число и получаемые целые части на новое основание счисления (р) до тех пор, пока целая часть не станет ровна нулю.
Полученные остатки от деления, представленные цифрами из нового счисления, записать в виде числа, начиная с последней целой части.
Пример 1. Перевести число 61 из десятичной системы счисления в двоичную:
(В дальнейшем будет использоваться краткая запись задания: 6110 = Х2)
61 = 30 • 2 + 1;
30 = 15 • 2 + 0;
15 = 7 • 2 + 1;
7 = 3 • 2 + 1;
3 = 1 • 2 + 1;
1 = 0 • 2 + 1.
ответ: 6110 = 1111012.
(Можно заметить, что рассмотренный «Пример 1» является противоположным «Примеру 1» рассмотренному в предыдущей теме. Таким образом, всегда можно делать проверку результата при переводе чисел из любой системы счисления в десятичную, и наоборот).
Пример 2. 27110 = Х8:
271 = 33 • 8 + 7;
33 = 4 • 8 + 1;
4 = 0 • 8 +4.
ответ: 27110 = 4178.
Пример 3. 1140610 = Х16:
11406 = 712 • 16 + 14;
712 = 44 • 16 + 8;
44 = 2 • 16 +12;
2 = 0 • 16 +2.
Учитывая, что в шестнадцатеричной системе счисления числу 14 соответствует цифра Е, а числу 12 цифра С, запишем ответ:
ответ: 1140610 = 2С8Е16.
(Будет не правильно записать ответ: 1140610 = 21281416)
Если число положительное, то при величине его дробной части меньше 0.5, она просто отбрасывается, если больше - отбрасывается и к числу прибавляется единица. Если число отрицательное, то при абсолютной величине его дробной части меньше 0.5, она просто отбрасывается, если больше - из числа вычитается единица.
А функция Trunc возвращает целую часть числа.
var
p:real;
begin
Write('Введите число: '); Read(p);
Writeln('Округленное значение: ',Round(p),', целая часть: ',Trunc(p))
end.
Тестовое решение:
Введите число: -12.74
Округленное значение: -13, целая часть: -12
Введите число: 12.93
Округленное значение: 13, целая часть: 12
Введите число: 9.4323
Округленное значение: 9, целая часть: 9