Двоичная система счисления: как переводить, как реализовать на C и C#

 Что такое двоичная система счисления?

Это такая бинарная система счисления (бинарная, потому что у неё имеется лишь два основания, т. е. две цифры – “0” и “1”), которая используется в самой основе компьютера, так как в компьютерных схемах, процессорах, платах имеются, так называемые, выключатели (или биты). Если на какой-либо схеме выключатель поставлен в позицию выкл., то ему соответствует цифра “0”, если вкл. – “1”. Благодаря таким вот массовым чередованиям позиций вкл\выкл и соответствующим им единиц и нулей и работают абсолютно все компьютеры.

Последовательность этих цифр, приводящая к каким-либо результатам в работе компьютера, называется машинным кодом – это самый сложный и самый низкий язык программирования, но раньше люди умудрялись программировать и на нём. Сейчас же эти коды обрамляются в более легкие и понятные ключевые слова, и формы, которые в последствии составляют различные языки программирования. Абсолютно все языки программирования в своей основе имеют под собой работу машинного кода, любая функция, любой оператор, любой метод записан в машинном коде в виде огромной последовательности единиц и нулей. Любой printf в С или Console.WriteLine обязательно разлагаются для компьютера на машинный код, только так он и может понять, что мы от него хотим.

Переводом исходного кода какого-либо языка программирования в машинный код занимается компилятор.

 Алгоритм перевода в двоичную систему счисления из десятеричной.

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

Итак, например, у нас имеется число 12 в десятеричной системе счисления, давайте переведем его в двоичную. Можно сделать это несколькими формами записи, кому как удобно.

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

Двоичная система счисления: как переводить, как реализовать на C и C# - vscode.ru

Теперь разберём, что тут написано. Сначала мы, как и в делении в столбик, пишем число, которое мы хотим делить (12), и число, на которое делим (в двоичной системе счисления это всегда 2).

12, делённое на 2 без остатка будет равно 6. Записываем это как положено в делении в столбик.

Двоичная система счисления: как переводить, как реализовать на C и C# - vscode.ru

 

Итак, теперь стоит сказать самое главное о переводе чисел из десятичной системы счисления в двоичную: если число делится на двойку без остатка, то мы пишем ноль, если с остатком – единицу.

Рассмотрим это правило поподробнее. Мы уже сказали, что 12 / 2 =6. Остатка у нас нет. Значит мы пишем ноль. В данном методе разбора мы пишем его под цифрой 6.

Двоичная система счисления: как переводить, как реализовать на C и C# - vscode.ru

 

Кусочек двоичного кода мы уже получили. Вычисляем дальше.

Теперь мы делим 6 на 2. Получается 3, и опять деление прошло без остатка – опять мы пишем, уже под тройкой, ноль.

Двоичная система счисления: как переводить, как реализовать на C и C# - vscode.ru

 

Теперь делим 3 на 2. На этот раз мы понимаем, что получается ответ с остатком – 1 и 0.5. Если происходит такое, то мы откидываем полученный остаток и делим полученное число без остатка на два, при этом подписываем ниже единицу.

Двоичная система счисления: как переводить, как реализовать на C и C# - vscode.ru

 

Далее нам стоит запомнить, что мы всегда делим последнюю единицу на два. Всегда после того или иного вычисления двоичного числа у нас так или иначе в итоге получается число 1 (как на примере, при делении 3 на 2). И абсолютно всегда мы его делим на 2. И абсолютно всегда последней цифрой в последовательности наших нулей и единиц будет цифра 1, так как все числа в двоичной системе счисления начинаются с единицы (исключение –  0, в двоичной системе счисление он и будет записан как 0).

Двоичная система счисления: как переводить, как реализовать на C и C# - vscode.ru

 

Мы поделили наше число 12, и у нас получилась последовательность: два нуля и две единицы. Однако это ещё не всё. Последний аспект, который надо запомнить – мы считываем двоичное число снизу вверх.

Двоичная система счисления: как переводить, как реализовать на C и C# - vscode.ru

Поэтому мы считаем нашу последовательность “с конца”, и у нас получается число 1100Это и есть ответ.

Теперь давайте рассмотрим вторую форму записи такого деления. Она менее громоздка, но по сути является той же самой формой деления.

Двоичная система счисления: как переводить, как реализовать на C и C# - vscode.ru

 

Здесь мы просто делим получаемые числа на два через черту, и, если частное получается без остатка, через тире пишем 0, если с остатком – 1. Опять же не забываем округлять числа с остатком в меньшую сторону, делить последнюю единицу на двойку и считывать последовательность в обратном порядке.

Реализация перевода числа из десятичной системы счисления в двоичную на языке C#

Реализация перевода десятичного числа в двоичное в C# невероятно проста и понятна. Отвечает за эту реализацию метод Convert.ToString, и выглядеть это будет вот так:

Сам по себе Convert.ToString отвечает за конвертацию переменных каких-либо других типов в тип string – тип строки.

string s – это объявленная переменная строкового типа. В неё и будет записан результат, полученный из правой части записи, то есть, число, переведенное в двоичную систему счисления.

Int32 в скобках – это та числовая переменная типа int, чьё значение мы будем переводить в двоичную систему счисления, понятное дело, что вместо Int32 должно стоять имя переменной (можно посмотреть пример ниже).

Цифра 2 в скобках – это своеобразная подсказка компьютеру, которая говорит ему, что перевод должен осуществляться именно в двоичную (оттого и двойка) систему счисления, а не в какую-либо другую. Так, например, для перевода в шестнадцатеричную систему счисления, вместо цифры 2 надо всего-навсего поставить число 16.

Простой пример перевода десятичного числа в двоичное можно посмотреть ниже:

Вывод будет вот таким:

Двоичная система счисления: как переводить, как реализовать на C и C# - vscode.ru

 

Реализация перевода числа из десятичной системы счисления в двоичную на языке C

В языке C, к сожалению, нет подобных методов и команд, поэтому придётся для такого перевода писать программу. Выглядеть она будет так:

Вот и всё, мы разобрали практически все аспекты перевода десятичного числа в двоичное.

Ниже можно будет скачать программы, описанные выше, на С# и C.

Скачать исходник для языка C Скачать исходник для языка C#

 

Двоичная система счисления: как переводить, как реализовать на C и C#
5 (100%) 7 votes

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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">