Язык единиц и нулей

Первый язык программирования

Предпосылки к созданию языков программирования.

Приведем такой пример. Чтобы вам заговорить с иностранцем, вам нужно знать английский. Он не поймет вас, если вы будете говорить на Русском. Так и компьютер, он понимает только свой язык. Язык на котором говорят компьютеры- это машинный код. Нули и единицы. 00010111011011…И любая программа для процессора ( компьютера ) состоит из нулей и единиц.

ЭВМ. Электронно-вычисли́тельная маши́на или электро́нная вычисли́тельная маши́на — название компьютеров, принятое в русскоязычной научной литературе

Ассемблер

Ассемблер это низкоуровневый язык программирования. Низкоуровневый- не значит плохой. Низкоуровневые языки программирования блики к машинному коду и машине их легче понять.

Ну а вот, что говорит нам Wikipedia :

Но сложность написания объемных программ привела к созданию языков программирования высокого уровня, которые хорошо понятны человеку. Они выступают в роли посредника(переводчика) между машинами и программистами.

Если вам понравилась заметка, делитесь её с друзьями и оставляйте комментарии! Познаем новое вместе с проектом «Познание»!

Предпосылки к созданию языков программирования.

Приведем такой пример. Чтобы вам заговорить с иностранцем, вам нужно знать английский. Он не поймет вас, если вы будете говорить на Русском. Так и компьютер, он понимает только свой язык. Язык на котором говорят компьютеры- это машинный код. Нули и единицы. 00010111011011…И любая программа для процессора ( компьютера ) состоит из нулей и единиц.

ЭВМ. Электронно-вычисли́тельная маши́на или электро́нная вычисли́тельная маши́на — название компьютеров, принятое в русскоязычной научной литературе

Ассемблер

Ассемблер это низкоуровневый язык программирования. Низкоуровневый- не значит плохой. Низкоуровневые языки программирования блики к машинному коду и машине их легче понять.

Ну а вот, что говорит нам Wikipedia :

Но сложность написания объемных программ привела к созданию языков программирования высокого уровня, которые хорошо понятны человеку. Они выступают в роли посредника(переводчика) между машинами и программистами.

Если вам понравилась заметка, делитесь её с друзьями и оставляйте комментарии! Познаем новое вместе с проектом «Познание»!

Источник

Двоичное счисление на пальцах

Все знают, что компьютеры состоят из единиц и нулей. Но что это значит на самом деле?

Если у вас в школе была информатика, не исключено, что там было упражнение на перевод обычных чисел в двоичную систему и обратно. Маловероятно, что кто-то вам объяснял практический смысл этой процедуры и откуда вообще берётся двоичное счисление. Давайте закроем этот разрыв.

Отличный план

Чтобы объяснить всё это, нам понадобится несколько тезисов:

Система записи — это шифр

Если у нас есть девять коров, мы можем записать их как 🐄🐄🐄🐄🐄🐄🐄🐄🐄 или как 9 × 🐄.

Почему 9 означает «девять»? И почему вообще есть такое слово? Почему такое количество мы называем этим словом? Вопрос философский, и короткий ответ — нам нужно одинаково называть числа, чтобы друг друга понимать. Слово «девять», цифра 9, а также остальные слова — это шифр, который мы выучили в школе, чтобы друг с другом общаться.

Допустим, к нашему стаду прибиваются ещё 🐄🐄🐄. Теперь у нас 🐄🐄🐄🐄🐄🐄🐄🐄🐄🐄🐄🐄 — двенадцать коров, 12. Почему мы знаем, что 12 — это «двенадцать»? Потому что мы договорились так шифровать числа.

Нам очень легко расшифровывать записи типа 12, 1920, 100 500 и т. д. — мы к ним привыкли, мы учили это в школе. Но это шифр. 12 ×🐄 — это не то же самое, что 🐄🐄🐄🐄🐄🐄🐄🐄🐄🐄🐄🐄. Это некая абстракция, которой мы пользуемся, чтобы упростить себе счёт.

Мы привыкли шифровать десятью знаками

У нас есть знаки 0, 1, 2, 3, 4, 5, 6, 7, 8 и 9 — всего десять знаков. Этим числом знаков мы шифруем количество единиц, десятков, сотен, тысяч и так далее.

Мы договорились, что нам важен порядок записи числа. Мы знаем, что самый правый знак в записи означает число единиц, следующий знак (влево) означает число десятков, потом сотен и далее.

Например, перед нами число 19 547. Мы знаем, что в нём есть:

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

Нам удобно считать степенями десятки, потому что у нас по десять пальцев и мы с раннего детства научились считать до десяти.

Система записи — это условность

Представим бредовую ситуацию: у нас не 10 пальцев, а 6. И в школе нас учили считать не десятками, а шестёрками. И вместо привычных цифр мы бы использовали знаки ØABCDE. Ø — это по-нашему ноль, A — 1, B — 2, E — 5.

Вот как выглядели бы привычные нам цифры в этой бредовой системе счисления:

В этой системе мы считаем степенями шестёрки. Число ABADØ можно было бы перевести в привычную нам десятичную запись вот так:

A × 6⁴ = 1 × 1296 = 1296
B × 6³ = 2 × 216 = 432
A × 6² = 1 × 36 = 36
D × 6¹ = 4 × 6 = 24
Ø × 6⁰ = 0 × 1 = 0
1296 + 143 + 34 + 24 + 0 = 1497. В нашей десятичной системе это 1497, а у людей из параллельной вселенной это ABADØ, и это равноценно.

Выглядит бредово, но попробуйте вообразить, что у нас в сумме всего шесть пальцев. Каждый столбик — как раз шесть чисел. Очень легко считать в уме. Если бы нас с детства учили считать шестёрками, мы бы спокойно выучили этот способ и без проблем всё считали. А счёт десятками вызывал бы у нас искреннее недоумение: «Что за бред, считать числом AD? Гораздо удобнее считать от Ø до E!»

То, как мы шифруем и записываем числа, — это следствие многовековой традиции и физиологии. Вселенной, космосу, природе и стадам коров глубоко безразлично, что мы считаем степенями десятки. Природа не укладывается в эту нашу систему счёта.

Например, свет распространяется в вакууме со скоростью 299 792 458 метров в секунду. Ему плевать, что нам для ровного счёта хотелось бы, чтобы он летел со скоростью 300 тысяч километров в секунду. А ускорение свободного падения тела возле поверхности Земли — 9,81 м/с². Так и хочется спросить: «Тело, а ты не могло бы иметь ускорение 10 м/с²?» — но телу плевать на наши системы счисления.

Двоичная система (тоже нормальная)

Внутри компьютера работают транзисторы. У них нет знаков 0, 1, 2, 3… 9. Транзисторы могут быть только включёнными и выключенными — обозначим их 💡 и ⚫.

Мы можем научить компьютер шифровать наши числа этими транзисторами так же, как шестипалые люди шифровали наши числа буквами. Только у нас будет не 6 букв, а всего две: 💡 и ⚫. И выходит, что в каждом разряде будет стоять не число десяток в разной степени, не число шестёрок в разной степени, а число… двоек в разной степени. И так как у нас всего два знака, то получается, что мы можем обозначить либо наличие двойки в какой-то степени, либо отсутствие:

Если перед нами число 💡 ⚫💡⚫⚫ 💡💡⚫⚫, мы можем разложить его на разряды, как в предыдущих примерах:

256 + 0 + 64 + 0 + 0 + 8 + 4 + 0 + 0 = 332

Получается, что десятипалые люди могут записать это число с помощью цифр 332, а компьютер с транзисторами — последовательностью транзисторов 💡⚫💡⚫⚫ 💡💡⚫⚫.

Если теперь заменить включённые транзисторы на единицы, а выключенные на нули, получится запись 1 0100 1100. Это и есть наша двоичная запись того же самого числа.

Почему говорят, что компьютер состоит из единиц и нулей (и всё тлен)

Инженеры научились шифровать привычные для нас числа в последовательность включённых и выключенных транзисторов.

Дальше эти суммы научились получать супербыстро. Потом научились получать разницу. Потом умножать. Потом делить. Потом всё это тоже научились делать супербыстро. Потом научились шифровать не только числа, но и буквы. Научились их хранить и считывать. Научились шифровать цвета и координаты. Научились хранить картинки. Последовательности картинок. Видео. Инструкции для компьютера. Программы. Операционные системы. Игры. Нейросети. Дипфейки.

И всё это основано на том, что компьютер умеет быстро-быстро складывать числа, зашифрованные как последовательности включённых и выключенных транзисторов.

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

Когда человека не станет, скорость света будет по-прежнему 299 792 458 метров в секунду. Но уже не будет тех, кто примется считать метры и секунды. Такие дела.

Источник

Двоичный код.

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

Видя что-то впервые, мы зачастую задаемся логичным вопросом о том, как это работает. Любая новая информация воспринимается нами, как что-то сложное или созданное исключительно для разглядываний издали, однако для людей, желающих узнать подробнее о двоичном коде, открывается незамысловатая истина – бинарный код вовсе не сложный для понимания, как нам кажется. К примеру, английская буква T в двоичной системе приобретет такой вид – 01010100, E – 01000101 и буква X – 01011000. Исходя из этого, понимаем, что английское слово TEXT в виде двоичного кода будет выглядеть таким вот образом: 01010100 01000101 01011000 01010100. Компьютер понимает именно такое изложение символов для данного слова, ну а мы предпочитаем видеть его в изложении букв алфавита.

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

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

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

1. Выбираем нужное число и делим его на 2. Если результат деления получился с остатком, то число двоичного кода будет 1, если остатка нет – 0.

2. Откидывая остаток, если он есть, снова делим число, полученное в результате первого деления, на 2. Устанавливаем число двоичной системы в зависимости от наличия остатка.

3. Продолжаем делить, вычисляя число двоичной системы из остатка, до тех пор, пока не дойдем до числа, которое делить нельзя – 0.

4. В этот момент считается, что двоичный код готов.

Для примера переведем в двоичную систему число 7:

1. 7 : 2 = 3.5. Поскольку остаток есть, записываем первым числом двоичного кода 1.

2. 3 : 2 = 1.5. Повторяем процедуру с выбором числа кода между 1 и 0 в зависимости от остатка.

3. 1 : 2 = 0.5. Снова выбираем 1 по тому же принципу.

4. В результате получаем, переведенный из десятичной системы счисления в двоичную, код – 111.

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

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

Для этого нам нужно пронумеровать наше двоичное число 111 с конца, начиная нулем. Для 111 это 1^2 1^1 1^0. Исходя из этого, номер для числа послужит его степенем. Далее выполняем действия по формуле: (x * 2^y) + (x * 2^y) + (x * 2^y), где x – порядковое число двоичного кода, а y – степень этого числа. Подставляем наше двоичное число под эту формулу и считаем результат. Получаем: (1 * 2^2) + (1 * 2^1) + (1 * 2^0) = 4 + 2 + 1 = 7.

Немного из истории двоичной системы счисления.

Источник

Поделиться с друзьями
admin
Оцените автора
( Пока оценок нет )
Как переводится?
Adblock
detector