Здравствуйте. Меня зовут Елена, я репетитор по информатике. На канале TeachYou я выкладываю посты с важной информацией для подготовки к экзаменам, чтобы впоследствии отсылать к ней своих учеников. Буду рада, если помогу и другим читателям разобраться в отдельных темах.
Сегодня поговорим о системах счисления
Я рассчитываю, что вы немного ориентируетесь в материале (знать о том, что есть такое понятие, как системы счисления) - уже немного ;) Сначала расскажу, как формируются числа в нашей родной десятичной системе счисления, потом по аналогии рассмотрим другие системы. Сразу оговорюсь, что в рамках этого поста мы ограничиваемся рассмотрением целых чисел.
Важно различать понятия "числа" и "цифры". Число - это математическое представление количества каких-то объектов. Цифры - значки, которыми мы пользуемся для записи чисел. Если система счисления имеет основание 6 (шестиричная), то для записи чисел в ней используются шесть цифр, начиная с нуля: {0, 1, 2, 3, 4, 5}. В дальнейшем набор цифр какой-либо системы счисления я буду приводить в фигурных скобках.
Чувствую, рассказ не получится коротким, так что наливайте чай с печеньками и располагайтесь поудобнее)
Уже после публикации увидела, что картинки получились качеством ниже среднего( Надеюсь, будет возможность в ближайшее время исправить этот недостаток.
Десятичная система счисления
Почему человечество в массе своей использует именно десятичную систему счисления? Мне кажется правдоподобным предположение о том, что это связано с количество пальцев у нас на руках - так удобнее было считать и показывать.
Как формируется число?
Как мы знаем, числа бывают однозначные (те, что записываются одной цифрой), двузначными (двумя цифрами) и т. д. Если натуральные числа расположить в порядке возрастания, то сначала будут идти однозначные, потом двузначные, трехзначные и т.п. Количество цифр в записи числа еще называют количеством разрядов в числе. Разряды - это единицы, десятки, сотни и т. д.
Любое число можно разложить по разрядам. Например:
1234 = 1 тысяча + 2 сотни + 3 десятка + 4 единицы.
Зная, из скольких единиц, десятков, сотен и т п состоит количество объектов, мы можем записать это количество числом - поставим в нужные разряды соответствующие цифры.
Но что такое единица, десяток, сотня и иже и ними? Разберемся на картинках. Подписи к рисункам кажутся тривиальными, но именно в таких формулировках заключен основной смысл работы с разными системами счисления.
Теперь мы можем любое количество объектов разложить по разрядам - на единицы, десятки, сотни, тысячи! Попробуем на небольшом количестве:
Получилось, что количество точек состоит из трех десятков и трех единиц. Тогда оно запишется так:
3 десятка + 3 единицы = 33.
Делаем мостик к другим системам счисления
Еще раз вернемся к тому, что такое десяток, так как это основа для понимания дальнейших выкладок. Ранее я сказала, что десять - это минимальное двузначное число. Откуда оно берется? Когда мы считаем объекты, мы сначала ставим в соответствие количеству однозначные числа. Затем они заканчиваются, так как мы перебрали все возможные:
Однозначные числа закончились. Чтобы считать дальше, нужно пользоваться двузначными числами: ставим в первый разряд единицу и перебираем все возможные варианты цифр для последнего разряда: 10, 11, 12, ... , 19. Дальше считать не будем, основной момент здесь - десяток соответствует числу 10 - первому (минимальному) двузначному числу. Двузначные числа возникают, когда все однозначные перебраны.
Как формируется число в других системах счисления
Возьмем пятеричную систему счисления. В ней для записи чисел используется пять цифр {0, 1, 2, 3, 4}. Посчитаем точки в этой системе счисления:
Пяти объектам соответствует пятеричное число 10. Десяток в пятеричной системе счисления - это пятёрка объектов! Если сотня - это десяток десятков, то пятеричная сотня - это пятерка пятерок - 25 объектов. Теперь можем "посчитать" какое-то большое количество и найти цифры, которые должны стоять в пятеричных разрядах.
Получается, в этом количестве объектов три пятеричные единицы и шесть пятеричных десятков. Но цифры 6 в пятеричной системе счисления нет. Нужно выделить еще и пятеричную сотню - пять пятерок.
На рисунке 33 звезды. Получается:
33_10 = 113_5.
После нижнего подчеркивания написано основание системы счисления.
Теперь вы можете "врисовательную" разложить любое число на разряды в любой системе счисления, а затем сформировать из них число. На практике так, конечно, не поступают.
Как переводить из 10й системы счисления в другие?
Какими соображениями мы руководствовались, считая точки в пятеричной системе счисления? Посчитали, сколько пятерок содержит наше количество. В числе 33 оказалось шесть пятерок и три единицы. Мы запомнили, что единиц 3, и пошли считать дальше.
Если в числе шесть пятерок, то сколько в нем сотен (пятерок пятерок?). Делим общее количество пятерок на пять, смотрим на целую часть: 6 // 5 = 1 - значит, в числе 33 одна пятеричная сотня. А сколько пятеричных десятков? Смотрим, сколько пятёрок остались после выделения сотен: 6 % 5 = 1 - один пятеричный десяток (здесь // обозначает деление нацело, а % - остаток от деления). Можем сформировать число, которое мы уже получали выше: 33_10 = 113_5.
Алгоритм перевода из десятичной системы в любую другую заключается в последовательном нахождении цифр, стоящих в разрядах единиц, десятков, сотен и т п:
Если основание системы счисления больше 10
Бывает, нужно использовать системы счисления с основанием, большим 10: к примеру, шестнадцатеричную. Отличие таких систем счисления состоит в том, что для записи цифр в них используют не только цифры от 0 до 9, но и буквы латинского алфавита. Набор цифр шестнадцатеричной системы такой: {0, 1, 2, ... , 9, A, B, C, D, E, F}. При этом понимается, что цифра A соответствует количеству объектов, которое в десятичной системе записывается как 10, B - 11, ... , F - 15. Давайте переведем что-нибудь в шестнадцатеричную систему счисления:
Как переводить из других систем счисления в десятичную?
Продолжим работать с многострадальным числом 113_5. Допустим, мы забыли, какому десятичному числу оно соответствует. Как нам его найти? Разложим 113_5 по разрядам:
113_5 = 1 сотня + 1 десяток + 3 единицы.
Отметим, что сотни-десятки-единицы тут пятеричные:
113_5 = 1 сотня_5 + 1 десяток_5 + 3 единицы_5.
Пятеричный десяток - это пятерка = 5. Пятеричная сотня - это пятерка пятерок = 5*5 = 25. Единица в любой системе счисления остается единицей. Получается, что
113_5 = 1 * 5 * 5 + 1 * 5 + 3 * 1 = 25 + 5 + 3 = 33_10.
Если вы действительно забыли, что 113_5 = 33_10, можете пролистать статью выше и убедиться в этом.
Но обычно для перевода чисел в десятичную систему используют немного другую запись, основанную на следующем:
1_5 = 1 = 5^0
10_5 = 5 = 5^1
100_5 = 5*5 = 5^2
1000_5 = 5*5*5 = 5^3
и так далее.
Символом ^ обозначена операция возведения в степень. Показатель степени - это номер разряда: единицы - нулевой разряд, десятки - первый, сотни - второй....
Переведем число 471_8 в десятичную систему счисления:
Мой рассказ о мире систем счисления подошел к концу. Надеюсь, материал был вам понятен и полезен. Напишите в комментариях, нужно ли сделать статью с объяснением, как переводить числа в разные системы счисления с помощью кода на языке Python. Если нужно - сделаю материал со скриншотами и ссылками на шаблоны программ.