Сергей Сергеевич Лебедев
Меню сайта
Категории каталога
Мои статьи [21]
В разработке [1]
Наш опрос
Какими операционными системами Вы пользуетесь
Всего ответов: 100
Главная » Статьи » Мои статьи

Перевод числа из одной системы счисления в другую
С.С. Лебедев
ст. преподаватель кафедры ЕНТД КФ АГТУ
А.В. Бабкина
студентка химико-технологического факультета
Е.А. Колмогорцев
студент математического факультета КФ ПГУ
 
Перевод числа из одной системы счисления в другую
    Под системой счисления понимается способ представления любого числа с помощью некоторого алфавита символов, называемых цифрами.
    Количество p различных цифр, употребляемых в системе счисления*, определяет название системы и называется основанием системы счисления – «p».
    Для человека привычной является десятичная система счисления, т.е. система счисления, основанная на алфавите из 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Это связано с тем, что человек учится считать на предметах которые он может увидеть, взять, …, т.е. реально ощутить. И одним из этих предметов являются его собственные пальцы, которых как раз 10.
    Естественно, что основание системы счисления может быть любым, а значит, система счисления может быть не только десятичной, например, в современной вычислительной технике применяется двоичная система счисления, основанная всего на двух цифрах: 0 и 1. Это объясняется тем, что электронные устройства могут находиться только в двух устойчивых состояниях: «есть ток», «нет тока». А закодировать в числовой форме эти состояния (для создания программ, управляющих ЭВМ) удобнее всего с помощью именно двоичной системы счисления: 1 – «есть ток», 0 – «нет тока».
    Кроме двух перечисленных, достаточно распространены восьмеричная (0, 1, 2, 3, 4, 5, 6, 7) и шестнадцатеричная (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) системы счисления.
    Но человеку, как уже было сказано выше, удобнее оперировать с десятичной системой счисления, и как следствие, требуются способы перевода чисел из одной системы счисления в другую.
    Далее мы рассмотрим эти способы.
Перевод чисел в десятичную систему
    Осуществляется путем составления степенного ряда с основанием той системы, из которой число переводится. Затем подсчитывается значение суммы.
    Пример.
    Перевести 10101101.1012 в 10-ю систему счисления. Здесь и в дальнейшем при одновременном использовании нескольких различных систем счисления основание системы, к которой относится число, будем указывать в виде нижнего индекса.
10101101.1012 = 1*27+ 0*26+ 1*25+ 0*24+ 1*23+ 1*22+ 0*21+ 1*20+ 1*2-1+ 0*2-2+ 1*2-3 = 173.62510
Перевод целых десятичных чисел в недесятичную систему счисления (алгоритм Евклида)
    Метод перевода числа из десятичной системы счисления в недесятичную с использованием алгоритма Евклида заключается в следующем**:
  1. Основание новой системы счисления выразить в десятичной системе счисления и все последующие действия производить в десятичной системе счисления.
  2. Последовательно выполнять деления данного числа и получаемых неполных частных на основание новой системы счисления до тех пор, пока не получим неполное частное, меньшее делителя.
  3. Полученные остатки, являющиеся цифрами числа в новой системе счисления, перевести в соответствие с алфавитом новой системы счисления.
  4. Составить число в новой системе счисления, записывая его, начиная с последнего частного.
    Пример.
    Перевести 2510 в 2-ю систему счисления

Перевод числа (алгоритм Евклида)

    Результат: 2510 = 110012
    Данный способ изучается в школе, однако при этом учитель иногда сталкивается с проблемой. У некоторых учеников сложился устойчивый стереотип: прекращать деление необходимо тогда, когда частное равно 1. Для таких школьников непонятно, почему необходимо прекращать деление, если частное, например, 3. Чтобы преодолеть эту проблему, учителю приходится тратить дополнительное время на повторное объяснение уже пройденного материала.
    Следует отметить, что на вопрос ученика «Почему?» учитель нередко отвечает: «Дальнейшее деление невозможно». Такое заявление является, мягко говоря, абсурдным с точки зрения математики.
    Вторая проблема, которую выделяем мы, заключается в следующем: почему необходимо брать одно частное и все остатки от деления?
    Методически более правильно будет объяснение, основанное на делении числа до тех пор, пока частное не станет равно нулю. Делить с остатком, в том числе и когда частное равно нулю, школьники умеют еще с начальной школы.
    Тогда на вопрос: «Почему прекращаем деление?» – можно ответить, что дальнейшее деление бессмысленно, т.к. все время будет получаться нуль в частном и в остатке от деления. И все полученные остатки, записанные в обратном порядке, будут являться значащими цифрами числа в новой системе счисления. Даже если кто-то из учеников предположит, что мы будем делить нулевое частное еще несколько раз, то может ли это повлиять на правильность результата? Конечно же, нет, т.к. появляющиеся нули будут попадать в начало числа, т.е. будут незначащими. Так, приведенный выше пример можно оформить следующим образом:

Перевод числа (алгоритм Евклида)

    А сам алгоритм можно трактовать так:
  1. Разделить с остатком исходное число, записанное в десятичной системе счисления и по правилам десятичной системы счисления, на основание новой системы счисления.
  2. Если частное больше нуля, то повторить п.1 для частного.
  3. Все остатки от деления, записанные в обратном порядке, будут являться значащими цифрами числа в новой системе счисления.
Перевод правильных дробей из десятичной системы счисления в недесятичную
    Для перевода правильной десятичной дроби в другую систему эту дробь надо последовательно умножать на основание той системы, в которую она переводится. При этом умножаются только дробные части. Дробь в новой системе записывается в виде целых частей произведений, начиная с первого.
    Пример.
    Перевести 0.312510 в 8-ю систему счисления.

Перевод десятичной дроби

    Результат: 0.312510 = 0.248
    Замечание. Конечной десятичной дроби в другой системе счисления может соответствовать бесконечная (иногда периодическая) дробь. В этом случае количество знаков в представлении дроби в новой системе берется в зависимости от требуемой точности.
    Пример.
    Перевести 0.6510 в 2-ю систему счисления (точность 6 знаков)

Перевод десятичной дроби с указанной точностью

    Результат: 0.6510 ≈ 0.10(1001)2
    В заключение приведем довольно любопытную теорему. Известно, что при переводе десятичной дроби в другую систему счисления количество значащих цифр после запятой может меняться. Например, 0,12510 = 0,18 или 0,539062510=0,8А16.
    В этом контексте встает вопрос о максимальном количестве значащих цифр после запятой при переводе десятичной дроби в другую систему счисления.
    Теорема. Пусть имеется десятичная дробь, имеющая k значащих цифр после запятой, т.е. . Если данную дробь перевести в любую другую отличную от десятичной систему счисления, то количество значащих цифр после запятой конечной дроби в новой системе счисления будет определяться соотношением: .
    Покажем справедливость теоремы для числа с одной значащей цифрой после запятой в десятичной дроби (k = 1; (0,x1)10, х1 <> 0) при переводе в двоичную систему счисления (z = 2).
   Используем метод перевода по частям (умножением) для перевода дробной части числа из десятичной системы счисления в двоичную.

Перевод десятичной дроби

    Для любых ai, принадлежащих множеству {0; 1; 2; 3; 4; 5; 6; 7; 8; 9}, т.к. это множество является алфавитом десятичной системы счисления.
    Количество ai вместе с x1 соответствует количеству символов десятичного алфавита. Допустим, что все символы алфавита встречаются среди {аi, x1} хотя бы раз, тогда существует i, такой, что, начиная с аi все последующие элементы должны равняться нулю. Если учесть предположение, что все символы алфавита встречаются хотя бы раз, то i = 9 (a9 = 0), тогда число в двоичной системе счисления будет записано как (0.y1y2y3y4y5y6y7y8y9)2. Таким образом, количество значащих цифр после запятой в двоичной системе счисления будет равно 9 или t = 101-1.
    Если в ноль обратится элемент, индекс которого, меньше 9, то получаем t < 101-1. Объединим это неравенство с полученным ранее равенством, получаем: t ≤ 101-1.
    Допустим, что не один из {аi, x1} не равен нулю, тогда существуют i, j такие, что a i = aj. Тогда дальнейшее умножение приведет к повторяющейся последовательности ai, т.е. полученная дробь в двоичной системе счисления является периодической, что выходит за рамки данной теоремы.
-----
 * Здесь и далее имеются в виду только позиционные системы счисления.
 ** Информатика. Задачник-практику в 2т. / под ред. И.Г. Семакина, Е.К. Хеннера: Том 1. – М.: Бином. Лаборатория Знаний, 2002. – 304с.: ил. – С. 32.
Категория: Мои статьи | Добавил: Сергей_Лебедев (10.01.2009)
Просмотров: 10683 | Комментарии: 1 | Рейтинг: 5.0/2 |
Всего комментариев: 1
0
1 Crefcooroli   [Материал]
перечитал весь блог, довольно неплохо

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright С.С. Лебедев © 2020Конструктор сайтов - uCoz