ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode


Восьмеричная система счисления


Оглавление:
Перевод из десятичной системы счисления в восьмеричную
Перевод из восьмеричной системы счисления в десятичную
Перевод из двоичной системы счисления в восьмеричную
Перевод из восьмеричной системы счисления в двоичную
Перевод из восьмеричной системы счисления в шестнадцатеричную и из шестнадцатеричной системы в восьмеричную
Применение восьмеричной системы счисления

Восьмеричная система – одна из основных систем счислений наряду с двоичной, десятичной и шестнадцатеричной, применяемая в информационных технологиях.

Как мы знаем, компьютеры «воспринимают» лишь двоичную систему счисления, состоящую только из нулей и единиц. Однако человеку довольно непривычно и неудобно работать с такими числами. Например, привычное нам десятичное число 2 143 в двоичной системе будет выглядеть как 100001011111.  Переводить числа из двоичной системы в десятеричную также не очень удобно и бывает довольно муторно.

В итоге было решено использовать альтернативные и более простые системы счисления: восьмеричную и шестнадцатеричную. Числа 8 и 16 являются степенями двойки (2 в третьей и 2 в четвёртой степени соответственно), поэтому выполнять преобразования из двоичной системы и наоборот гораздо легче, чем при десятичной системе счисления, которая не может похвастаться своей причастностью к степеням числа 2.

Кроме того, числа в восьмеричной системе как минимум более приятны глазу и гораздо короче, чем их аналоги в двоичной системе. Так, например, в восьмеричной системе то же число 2 143 будет записываться как 4137.

В восьмеричной системе счисления, как уже можно было догадаться, основанием является цифра 8 и, соответственно, она вмещает в себя только восемь цифр: от 0 до 7. Поэтому числа в восьмеричной системе счисления очень похожи на десятичные, в отличие от шестнадцатеричных, где присутствуют буквы латинского алфавита или двоичных, состоящих только из двух цифр. Отличают эти две системы тем, что в восьмеричной отсутствуют цифры 8 и 9, а также, очевидно, нижними индексами: у числа в десятичной системе прибавляют нижний индекс с цифрой 10, а к числам в восьмеричной системе приписывают цифру 8, например:

Восьмеричная система счисления Теперь давайте научимся переводу чисел в восьмеричную систему счисления и наоборот.

Перевод из десятичной системы счисления в восьмеричную

Давайте попробуем изучить перевод десятичного числа в восьмеричное на примере. После этого примера вы без проблем сможете переводить любые числа в эту систему.

Возьмём десятичное число 15 450 и попробуем перевести его в восьмеричную систему счисления.

Для начала нам необходимо разделить исходное число на основание системы, в которую мы хотим это число перевести. Для восьмеричной системы это число 8. То есть мы делим 15 450 на 8.

Перевод из десятичной системы счисления в восьмеричную

Происходит деление в столбик, но, в отличие от стандартного деления, мы не находим неполные частные, а делим сразу всё делимое на 8. Наибольшим числом, при котором 15 450 делится без остатка на 8 будет число 1 931. 1931 * 8 = 15 448. Теперь мы вычитаем из 15 450 полученное число 15 448, у нас получился остаток 2. Выделяем эту двойку, так как это уже кусочек нашего числа в восьмеричной системе.
Продолжаем: теперь делим полученное на предыдущем шаге частное на 8:

Перевод из десятичной системы счисления в восьмеричную

Всё точно так же: наибольшим числом, при котором 1 931 делится без остатка на 8 будет число 241. При умножении 241 на 8 получается число 1 928. Ищем разность между 1 931 и 1928 – получается 3. Выделяем её. Далее делим 241 на 8.

Перевод из десятичной системы счисления в восьмеричную

Получается число 30, умножив его на 8, получаем 240. Вычитаем из 241 это число, получается 1. Выделяем единицу.
Продолжаем деление до тех пор, пока частное не станет меньше 8!

Перевод из десятичной системы счисления в восьмеричнуюИтак, делим 30 на 8, получается 3,75, отбрасываем дробную часть, получается 3. Умножаем 3 на 8, получается 24. 30 — 24 = 6. Выделяем шестёрку. Мы закончили деление так как 3 меньше 8. Обязательно выделяем последнее частное тоже (у нас это цифра 3).

Выделенные красным цифры – это и есть наше число в восьмеричной системе, НО они написаны наоборот. То есть, чтобы правильно прочитать число в восьмеричной системе, необходимо сделать это справа налево.

Перевод из десятичной системы счисления в восьмеричную

Таким образом, десятичное число 15 45010 в восьмеричной системе будет выглядеть как 36 1328.

Итого, алгоритм перевода чисел из десятичной системы в восьмеричную следующий:

  1. Разделить исходное число на 8. Найти максимальное частное и убрать дробную часть от него. Например, исходное число 20 : 8 = 2,5. Значит в частное мы записываем число 2.
  2. Умножить полученное частное на 8. Записать его под исходным числом.
  3. Найти остаток между этими числами и выделить его — это кусочек переведённого в восьмеричную систему числа.
  4. Затем разделить в столбик полученное частное на 8, записать ответ и проделать шаги 2 и 3.
  5. Производить деление до тех пор, пока делимое не станет меньше 8. Выделить это делимое тоже.
  6. Выписать все выделенные числа справа налево (т.е. последнее делимое будет на первом месте, затем идёт остаток, найденный на последнем шаге, затем остаток, найденный на предпоследнем шаге и т.д.). Полученное при такой записи число и будет нашим искомым восьмеричным.

Теперь перейдём к переводу восьмеричного числа в десятичную систему счисления.

Перевод из восьмеричной системы счисления в десятичную

Перевести восьмеричное число в десятичное даже проще, чем наоборот. Давайте рассмотрим пример: переведём восьмеричное число 36078 в десятичное.

Для начала мы делаем такую запись: с конца берём каждую цифру нашего исходного числа, каждое из них умножаем на 8, и все в целом складываем. Должно получиться примерно так:


Перевод из восьмеричной системы счисления в десятичную

Однако, это ещё не всё! После того, как мы сделали подобную запись, ко всем числам 8, на которые умножаются цифры исходного числа, необходимо добавить степени в порядке возрастания: 0, 1, 2 и т.д. Обязательно необходимо начинать с нулевой степени!

Перевод из восьмеричной системы счисления в десятичную

Всё, что остаётся после этого – просто посчитать. В итоге у нас получилось число 1927 в десятичной системе.

Перевод из двоичной системы счисления в восьмеричную

Перевод чисел из двоичной системы счисления в восьмеричную – довольно необычное дело для тех, кто никогда с этим не сталкивался. Однако на деле всё не так пугающе, как может показаться с первого раза.

Давайте попробуем. Допустим, у нас есть двоичное число 1010010001011101100.

Для начала нам необходимо разбить это число на триады – группы из трёх цифр. Почему именно три цифры? Как мы знаем, у систем счислений имеются основания. И у двоичной системы основание – 2. Нам необходимо перевести двоичное число в восьмеричную систему с основанием 8. Математически это можно записать так:

Перевод из двоичной системы счисления в восьмеричную

Найти i, пожалуй, не составит труда: i = 3, то есть, для записи одного восьмеричного числа в двоичной системе необходимо 3 бита или, говоря иначе — 3 двоичные цифры. Поэтому мы и будем разбивать двоичное число на триады. Однако надо запомнить, что делать это надо с младшего бита. Бит – это одна цифра в двоичном числе. Чем дальше бит от начала числа, тем он младше. Самый младший бит – это последняя цифра двоичного числа. Иными словами, мы разбиваем число на триады, начиная с конца.

Перевод из двоичной системы счисления в восьмеричную

Внимание: если старшая триада не заполнена, до конца, перед ней необходимо дописать столько нулей, чтобы получилась полноценная триада.

Перевод из двоичной системы счисления в восьмеричную

Теперь всё, что нам остаётся – это перевести каждую из этих триад из двоичной системы счисления в восьмеричную. Это можно сделать самостоятельно:

Перевод из двоичной системы счисления в восьмеричную

Для этого в каждой отдельной триаде (начиная с первой) нужно каждую цифру (начиная с последней) умножить на 2, возведённую в степени от 0 до 2, и сложить полученные три числа.

Затем, полученные результаты по каждой отдельной триаде надо выписать, начиная с самой первой. Записанное число и будет нашим конечным результатом в восьмеричной системой счисления.

Однако можно сильно облегчить себе задачу, не высчитывая все триады числа, а просто сверяя каждую из них по таблице соответствия двоичных чисел восьмеричным, например, по такой:

Перевод из двоичной системы счисления в восьмеричную

Теперь можно просто смотреть на триаду, сверять её с таблицей и записывать число, соответствующее ей в восьмеричной системе.

Перевод из восьмеричной системы счисления в двоичную

Самым удобным способом перевода из восьмеричной системы счисления в двоичную является использование таблицы соответствий. Итак, допустим, мы хотим перевести восьмеричное число 36702 в двоичную систему. Что же нам делать? Мы берём первую цифру нашего исходного числа – 3. Ищем её по таблице соответствия – в двоичной системе это 011. Берём следующую цифру – 6 и ищем её в таблице, находим 110, и так далее. Продолжаем, пока не переведём все восьмеричные цифры в триады. В итоге у нас получится необходимое двоичное число.

Внимание: Если в старших битах (то есть в самом начале двоичного числа) имеются нули, необходимо убрать их до первой единицы. Например, как на изображении ниже. В старшем бите у нас получился ноль при переводе восьмеричной тройки, и мы убрали его. Это делается для удобства, потому что зачем хранить и писать незначащие цифры.

Перевод из восьмеричной системы счисления в двоичную

Перевод из восьмеричной системы счисления в шестнадцатеричную и из шестнадцатеричной системы в восьмеричную

К сожалению, несмотря на то, что эти системы счисления близки друг к другу, напрямую перевести друг в друга нельзя. Легче всего при переводе этих двух систем друг в друга воспользоваться посредничеством двоичной системы. То есть, перевести восьмеричную систему счисления в двоичную, разделив число на триады и воспользовавшись таблицей соответствий, а затем перевести это число из двоичной системы в шестнадцатеричную с помощью тетрад. И наоборот: перевести число из шестнадцатеричной системы в двоичную, а затем уже из двоичной системы в восьмеричную описанными выше способами.

Применение восьмеричной системы счисления

В прошлом веке выпускались компьютеры, в которых использовались 12-ти, 24-х и 36-битные слова. Это, например, модель ICT 1900 (1964 год), а также PDP-8, выпущенная в 1965 году — это коммерчески довольно успешная модель миникомпьютера в своё время. Кроме того, некоторые мейнфреймы от компании IBM использовали восьмеричную систему. В компьютерах, размер машинного которых кратен тройке, очень удобно использовать систему с основанием восемь, поскольку всегда все биты из слова можно представить в виде целого количества цифр в восьмеричной системе. Например, слово из 24-х бит, можно записать в виде 8-ми восьмеричных чисел.

Если говорить про использование восьмеричной системы в жизни людей, то известно, что в индейских языках Юки (Калифорния) и Паме (Мексика) использовалась данная система. Индейцы считали предметы не по количеству пальцев на руках, а по количеству промежутков между ними.

 

5/5 - (13 голосов)



Поделиться в соц. сетях:

Добавить комментарий

Ваш адрес email не будет опубликован.