↓
 ↑
Регистрация
Имя/email

Пароль

 
Войти при помощи
Временно не работает,
как войти читайте здесь!
Балтика
вчера в 07:05
Aa Aa
#программируем_с_балтикой

Вторая часть мини-курса про программирование

Для начала хочу рассказать вам о том, что такое система счисления и с чем ее едят. Эта глава не обязательна, но советую прочесть.

Система счисления — это знаковая система, в которой приняты определенные и строгие правила записи чисел.

Основание системы счисления — это количество используемых в ней цифр.

Поясню данные термины понятнее. К примеру, мы ежедневно используем десятичную систему счисления. В ней мы наблюдаем десять цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Основанием системы, как вы уже догадались, является цифра 10. Также бывают и другие системы счисления, к примеру, двоичная, состоящая только из двух чисел: 0 и 1. Интересное замечание — в системах счисления последнее число всегда меньше на 1, чем ее основание. К примеру, у восьмеричной системы счисления последним числом будет 7, а у пятеричной — 4. Конечно, возможно у вас сейчас возникли вопросы по типу "а как записывать, к примеру, шестнадцатиричную систему? Типо как 115, где 1 это 1, а две последние цифры это цифра 15? Не сходится. нелогично." Об этом я объясню чуть позже, а пока расскажу про виды систем счисления.

Системы счисления делятся на два вида — это позиционные и непозиционные.

Позиционные системы счисления — это системы счисления, в которой значение числа определяет не только символ цифры, но и их местонахождение. Пример — та же десятичная система. Число 555 является одним из чисел в ней. Символы вроде бы одинаковы, но носят разное значение. 5 в сотнях это 500, 5 в десятках — 50, и пять в единицах это и есть 5.

Непозиционная система счисления — это система счисления, в которой символы всегда имеют одно и то же значение, но количество значения не меняется от их местоположения. В пример приведу римские цифры. Как-бы вы не написали — в любом случае данные числа никак не изменятся. К примеру, возьмем XХ. От местоположения римских десяток число не изменится — оно также и останется числом 20.

Рассмотрим их различия на других примерах. Для примера возьмем по цифре 1 и 5 в каждой системе счисления. Для начала рассмотрим в десятичной системе счисления. Всего из этих цифр можно составить два варианта двухзначных чисел, не используя каждое больше одного раза: 15 и 51. В этом случае в первом варианте цифра 1 имеет значение 10, а цифра 5 - 5. Во втором примере теперь уже 5 имеет значение 50, а 1 - 1. То есть, в этих примерах одинаковые знаки имеют разное значение. Это и есть позиционная система. А теперь рассмотрим такой же пример с римскими цифрами. Взяв числа I и V (1 и 5), мы получим также два варианта чисел с разными цифрами: IV и VI. В этом случае в обоих вариантах цифра I будет иметь значение 1, а V - 5. Как бы мы не меняли их местами и куда бы в числа не ставили, эти цифры не изменят своего значения. Это и есть непозиционная система счисления.

Маленькая шпаргалочка кому интересно.

Римские цифры:

I = 1

V = 5

X = 10

L = 50

C = 100

D = 500

M = 1000.

III = 3

IV = 4.

VI = 6

IX = 9.

CDIXII = 413 и т.п.

Продолжим урок. Итак, вернемся к вопросу, заданному до видов систем счисления. Так как же будет выглядеть шестнадцатиричная система? Очень просто! Ряд цифр будет выглядеть так: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Да-да, именно так! Вместо чисел 10, 11, 12, 13, 14 и 15 добавляются буквы A, B, C, D, E и F.

№1. <i>Задание на досуг</i>: предлагаю вам подумать, как может выглядеть тридцатисемиричная или даже сорокаричная система счисления? (ответ будет в комментариях. Номер задания в начале.)

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

Для начала научимся переводить числа в десятеричную систему счисления. Разберем на примере. Переведем число 1010 в двоичной системе в десятеричную. Для этого для начала присвоим каждому числу начиная с конца номера от 0. Выйдет, что:

1 — 3

0 — 2

1 — 1

0 — 0

Далее расписываем в такой последовательности: берем первое число и умножаем его на основание системы счисления в степени, равной присвоенному номеру числа и прибавляем его ко второму числу, умноженному также на основание системы счисления, умноженное на присвоенный цифре номер и т.д. У нас получится:

1 х 2^3 + 0 x 2^2 + 1 x 2^1 + 0 x 2^0 = х

Далее мы просто решаем полученный пример. Умножение на ноль можно сразу вырезать — в любом случае получится ноль. Тогда получив пример 1 x 2^3 + 1 x 2^1 = х, возводим двойки в степени и получаем пример (я сразу умножила на 1) 8 + 2 = x. Тогда мы получаем, что х = 10. Вот мы и перевели число 1010 в двоичной системе в десятиричную, получив число 10.

В системах с большим количеством цифр перевод остается таким-же, при условии того, что буквы переведены в числа.

<i>Попробуйте самостоятельно перевести число 1110 в двоичной системе счисления в десятеричную</i> (ответ с пояснением будет в конце главы)

Теперь рассмотрим как перевести числа с десятичной в другую системы счисления. Для этого достаточно делить число на основание, пока полученное число не будет меньше, чем основание и записать числа, начиная с него и продолжая остатками с конца. Рассмотрим подробнее на примере.

К примеру, переведем число 17 в десятеричной системе в двоичную. Для этого начнем делить на 2 (остаток в скобках):

17:2 = 8(1)

8:2 = 4(0)

4:2 = 2(0)

2:2 = 1(0)

Получив таким образом числа, собираем их по данному алгоритму. Последнее полученное число — 1. Далее идут числа 0, 0 и 1. Собрав, получаем число 10001. Конечно, нагляднее это видно на примере деления столбиком, попробуйте воспроизвести данный пример самостоятельно, выделив кружком последний результат деления и показав стрелкой на то, с какой стороны нужно брать остатки (проведите стрелку снизу от последнего результата к первому остатку). Остатки подчеркните.

Рассмотрим примерперевода в шестнадцатиричную систему.

Возьмем число 126. Действуем также.

126:16 = 7(14)

В этом случае мы сразу получаем ответ — 7E в шестнадцатиричной.

Попробуйте перевести 1123 в десятиричной в двоичную и шестнадцатиричную системы.

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

Шпаргалка по квадратам двойки:

2^0 = 1

2^1 = 2

2^2 = 4

2^3 = 8

2^4 = 16

2^5 = 32

2^6 = 64

2^7 = 128

2^8 = 256

2^9 = 512

2^10 = 1024

2^11 = 2048

2^12 = 4096


Ответы:

1110 в двоичной = 14 в десятичной

1123 в десятичной = 10001100011 в двоичной

1123 в десятичной = 463 в шестнадцатиричной
вчера в 07:05
10 комментариев
Ответ на задачу №1. В том случае, если система счисления имеет основание 37 и более, у нас заканчиваются заглавные английские буквы. Не беда - последующие цифры в системах счисления можно называть маленькими латинскими буквами, специальными знаками и даже буквами с других алфавитов.
Было бы нелишне сказать, хотя бы кратко, зачем нужны эти системы счисления.
CPIXII = 413
Почему не CDXIII?
В пример приведу римские цифры. Как-бы вы не написали — в любом случае данные числа никак не изменятся.
IV vs VI.
Совсем-совсем значение не меняется, ага
К примеру, возьмем XХ. От местоположения римских десяток число не изменится — оно также и останется числом 20.
Офигеть, какой корректный пример! Я тоже таких приведу в пользу непозиционнсти десятичной системы, хотите?
11, 22, 33 и даже 999999 ;-)
Интересное замечание — в системах счисления последнее число всегда меньше на 1, чем ее основание. К примеру, у восьмеричной системы счисления последним числом будет 7, а у пятеричной — 5.

садись, 10
watcher125
думаю, что Вы не совсем поняли мое объяснение. Извиняюсь за неточность в тексте. Постараюсь рассказать Вам понятнее.
Насчет второго, то в Ваших примерах числа будут также являться позиционными. Почему? Каждое из цифр в зависимости от своего местоположения имеют свое значение. в числе 11 обе 1 не будут одинаковы. Первая цифра 1 будет гораздо больше второй, так как ее значение рано 10, а второй 1 - 1. Также с другими числами. В зависимости от своего местоположения их значения сильно меняются. Если же мы возьмем римские цифры и поставим рядом две цифры 1: II, то получим, что они равны и от их позиции в данном случае значение не изменится. Именно по этому свойству и названы системы. Насчет чисел IV и VI. В данном случае их символы не смотря на перестановку также имеют одинаковые значения. I останется цифрой 1, а V - 5. Если взять такие же числа в позиционной системе: 15 и 51, то разница существенна, так как в первом варианте цифра один имеет значение 10, а 5 - , во втором же число 5 уже имеет значение 50, а 1 - 1.
Думаю, теперь вы поняли? Если есть вопросы, можете смело задавать. Текст я, пожалуй, подредактирую, спасибо за замечание.
Показать полностью
Alicia H
Извините, допустила ошибочку :_)
isomori
Было бы нелишне сказать, хотя бы кратко, зачем нужны эти системы счисления.

Впринципе, она в каком-то смысле лежит в основе всех языков программирования. Та же двоичная система счисления, которую понимают компьютеры. И вообще, это базовые знания.
И вообще, это базовые знания.
Я правильно вас понимаю, устройство систем счисления – не базовые, а область их применения – базовые? Кроме общего "нужны для программирования".
Системы счисления по большей части не нужны в программировании. Там где они нужны - можно о них поговорить, да.
ПОИСК
ФАНФИКОВ











Закрыть
Закрыть
Закрыть