Что такое двоичные данные что

Буферы, потоки и двоичные данные в Node.js

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

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

О внутренних механизмах Node

К сожалению, многие руководства и книги, посвящённые Node.js, не уделяют должного внимания внутренним механизмам этой платформы, не стремятся объяснить цель их существования. Как правило, в подобных публикациях всё сводится к рассказам о разработке веб-приложений с использованием готовых пакетов, без углубления в детали их реализации. А кое-где даже беспардонно заявляется, что читателю всё это понимать и не нужно, так как ему, скорее всего, никогда не придётся работать, скажем, с объектами класса Buffer, напрямую.

В официальной документации по Node.js о классе Buffer можно прочитать следующее:

До появления объекта TypedArray в ECMAScript 2015 (ES6), в JavaScript не было механизма для чтения потоков двоичных данных или для выполнения других операций с ними. Класс Buffer был представлен как часть API Node.js, позволяющая взаимодействовать с потоками произвольных двоичных данных в контексте, например, TCP-потоков и операций с файловой системой.

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

Класс Buffer был представлен как часть API Node.js, позволяющая работать с потоками двоичных данных.

Итак, теперь всё выглядит немного проще. Но «класс Buffer», «потоки», «двоичные данные» — тут всё ещё слишком много непростых понятий. Попытаемся с ними разобраться, начав с последнего.

Что такое двоичные данные?

Возможно, вы уже знаете о том, что компьютеры хранят и представляют данные в двоичной форме. Двоичные данные — это просто набор единиц и нулей. Например, вот пять разных наборов двоичных данных, составленных из значений «1» и «0»:

Каждое число в двоичном значении, каждое значение «1» и «0» в наборе, называется битом (Bit, Binary digIT, двоичная цифра).

Для того чтобы работать с некими данными, компьютер должен преобразовать эти данные в их двоичное представление. Например, для того, чтобы сохранить десятичное число 12, компьютер должен преобразовать его в двоичную форму, а именно — в 1100.

Откуда компьютер знает, как производить подобные преобразования? Это — чистая математика. Это — двоичная система счисления, которую изучают в школах. Существуют правила преобразования десятичных чисел в двоичные и компьютер эти правила понимает.

Однако, числа — это не единственный тип данных, с которым мы работаем. У нас есть строки, изображения, и даже видео. Компьютер знает о том, как представлять в двоичном виде любые типы данных. Возьмём, например, строки. Как компьютер представит строку «L» в двоичном виде? Для того, чтобы сохранить строку в двоичной форме, компьютеру сначала надо преобразовать символы этой строки в числа, а затем надо конвертировать эти числа в их двоичное представление. Так, в случае с нашей строкой из одного символа, компьютеру сначала нужно преобразовать «L» в число, которое представляет этот символ. Посмотрим, как это делается в JavaScript.

Откройте консоль инструментов разработчика браузера и вставьте туда этот код:

Наборы символов

Наборы символов — это заранее заданные правила, касающиеся соответствия символов их числовым кодам. Существует множество разновидностей таких правил. Например, весьма популярные — это Unicode и ASCII. JavaScript очень хорошо умеет работать с наборами символов Unicode. На самом деле, именно таблица символов Unicode используется в браузере для преобразования символа L в число 76, именно в ней записано соответствующее правило.

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

Кодировка символов

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

Один из наборов правил кодировки символов называется UTF-8. UTF-8 определяет правила преобразования символов в байты. Байт — это набор из восьми битов — восьми единиц и нулей. Итак, для представления кодовой точки любого символа должен быть использован набор из восьми единиц и нулей. Разберёмся с этим утверждением.

Как уже было сказано, двоичное представление десятичного числа 12 — это 1100. Итак, когда UTF-8 указывает на то, что число 12 должно быть представлено восьмибитным значением, это означает, что компьютеру нужно добавить несколько битов слева реального двоичного представления числа 12 для того, чтобы представить его в виде одного байта. В результате 12 должно быть сохранено как 00001100. А число 76 будет выглядеть как 01001100.

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

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

Теперь мы понимаем — что такое двоичные данные, но что такое потоки двоичных данных, которые мы упоминали выше?

Поток

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

А причём тут буфер? Как он помогает работать с двоичными данными, пребывающими в форме потока?

Буфер

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

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

С другой стороны, если система способна обрабатывать данные быстрее, чем они поступают, то некоему количеству данных, прибывших раньше, чем может быть начат очередной сеанс обработки некоего пакета данных, нужно подождать прихода ещё некоторого количества данных, прежде чем все они будут отправлены на обработку.

Эта «зона ожидания» и есть буфер! Физическим представлением буфера может являться пространство в оперативной памяти, где данные, при работе с потоком, временно накапливаются, ждут своей очереди, и в итоге отправляются на обработку.

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

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

В любом случае речь идёт о некоем «зале ожидания». Буфер в Node.js играет ту же роль. Node.js не может контролировать скорость поступления данных или время их прибытия. Он лишь может принимать решения о том, чтобы отправить на обработку данные, которые уже прибыли. Если время отправки данных на обработку ещё не пришло, Node.js поместит их в буфер — в «зону ожидания».

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

Однако, если соединение особой скоростью не отличается, после обработки первого набора прибывших данных, проигрыватель будет показывать значок загрузки данных, или выводить надпись «буферизация», что означает, что он ожидает прибытия большего количества данных перед началом показа видео. А когда буфер оказывается заполненным и данные, поступившие в него, оказываются обработанными, проигрыватель выводит видео. В процессе проигрывания видео будут прибывать новые данные и ждать своей очереди в буфере. Это — как раз тот случай, когда система способна обрабатывать данные быстрее, чем они в неё поступают.

Если проигрыватель завершил воспроизведение данных, поступивших ранее, а буфер пока ещё не заполнен, надпись «буферизация» появится снова, система будет ждать, когда наберётся необходимое ей количество данных. Собственно говоря, в Node работа с буферами выглядит примерно так.

Из исходного определения буфера можно увидеть, что когда данные находятся в буфере, мы можем с ними работать. Что можно сделать с необработанными двоичными данными?

Работа с буферами

Реализация буфера в Node.js даёт нам массу вариантов работы с данными. Кроме того, можно создавать буферы самостоятельно, задавая их характеристики. Итак, помимо того буфера, который Node.js создаст автоматически в процессе передачи данных, можно создать собственный буфер и манипулировать им. Существуют разные способы создания буферов. Взглянем на некоторые из них.

После создания буфера с ним можно начинать работать.

Итоги

Теперь, когда вы понимаете, что такое «буфер», «поток» и «двоичные данные», вы можете открыть документацию по буферам и осмысленно поэкспериментировать со всем тем, о чём там идёт речь.
Кроме того, для того, чтобы увидеть, как с буферами работают на практике, почитайте исходный код библиотеки zlib.js. Это — одна из библиотек ядра Node.js. Посмотрите на то, как в этой библиотеке буферы используются для взаимодействия с потоками двоичных данных. Тут работа ведётся с файлами, представляющими собой gzip-архивы.

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

Источник

Работа с двоичными данными в 1С 8.3 и 8.2

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

Что такое двоичные данные и как с ними можно работать в 1С 8

Двоичные данные (или бинарные) — это файл данных произвольного формата.

Платформа 1С (8.3 и 8.2) в общем случае понятия не имеет, что это. Предполагается, что программист или пользователь знает, какие именно это данные и как их применять. Тем не менее, если в двоичные данные загружен графический файл, формат которого понимает объект типа «Картинка», то при инициализации картинки такими двоичными данными картинка будет нормально показана, а её свойство «Формат» примет правильное значение.

Платформа 1С при работе с двоичными данными может:

Возможно, я еще что-то упустил, однако интуитивно ясно, что практически все, что надо для работы с двоичными данными в 1С, у нас есть. Рассмотрим теперь по порядку несколько конкретных примеров работы с двоичными данными на платформе 1С 8.3.

Чтение и запись двоичных данных в файл

Основной тип объектов двоичных данных платформы 1С так и называется: «ДвоичныеДанные». Вот что говорит о нем «Синтаксис-помощник»:

Значение содержит двоичные данные, которые считываются из файла. Значение может быть сохранено в ХранилищеЗначения. Хранимые данные могут быть записаны в файл.

Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).

Сериализуется. Данный объект может быть сериализован в/из XML. Может использоваться в реквизитах управляемой формы.

Чтение двоичных данных из файла

Тип «Двоичные данные» имеет единственный конструктор:

имяФайла — обязательный аргумент.

В итоге получаем программный объект двоичных данных, прочитанный из файла.

Запись двоичных данных в файл

Определение размера двоичных данных в байтах

Сохранение двоичных данных в реквизит объекта

Рассмотрим сразу запись двоичных данных из файла на клиенте в реквизит объекта базы данных типа ХранилищеЗначения. Причем напишем такой код, который сработает и на веб-клиенте, а также будет лишен модальных вызовов, то есть таких вызовов, которые ожидают действия пользователя и останавливают при этом исполнение программы. Теперь платформа 1С 8.3 требует разрабатывать асинхронные программы.

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

Предположим, у нас на форме есть реквизит типа «СправочникСсылка.Картинки». Справочник «Картинки» имеет реквизит «ДанныеКартинки» типа ХранилищеЗначения.

Создадим команду формы «ЗагрузитьКартинкуИзФайла».

Создадим обработчик команды, выделив команду в списке команд формы и нажав на кнопку с увеличительным стеклом в поле «Действие» панели свойств:

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Поскольку все необходимые параметры для записи картинки мы можем передать изнутри клиентской части обработчика, нам нет нужды создавать контекстную серверную процедуру на сервере. Выберем «Создать на клиенте и процедуру на сервере без контекста»:

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Вначале напишем наши обработчики команды в старом, «модальном» или «синхронном» стиле:

В моей небольшой тестовой конфигурации этот код отлично сработал в режиме тонкого клиента. Теперь преобразуем модальный вызов «ПоместитьФайл» в асинхронный, он же немодальный. В меню конфигуратора запустим команду меню «Текст >Рефакторинг >Нерекомендуемые синхронные вызовы >Преобразовать вызовы модуля». Нам в ответ сообщат, что «Не рекомендуемых синхронных вызовов преобразовано: 1».

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

Готово! Мы кошерно асинхронно записали картинку из файла на клиенте в реквизит объекта базы данных, в нашем случае — элемента справочника.

Чтение двоичных данных из объекта БД

Для чего нам надо читать двоичные данные из объекта БД? Наверное, три самых частых случая таковы:

Пример 1. Вставить картинки в макет (табличный документ).

Допустим, у нас есть база данных со справочником «Картинки», у элементов которых есть реквизит «Картинка» типа ХранилищеЗначения, содержащий данные картинки.

Создадим новую внешнюю обработку, ее основную форму.

На форме создадим 3 реквизита «СпрКартинка1», «СпрКартинка2», «СпрКартинка3» типа «СправочникСсылка.Картинки» и реквизит «ТабДок» типа «ТабличныйДокумент». Перетащим мышкой эти реквизиты в список элементов формы, чтобы на ней образовались соответствующие поля.

Добавим команду формы «НапихатьКартинок» и создадим ее обработчик. На сей раз выберем «Создать на Клиенте и процедуру на сервере», чтобы не передавать много параметров в процедуру без контекста. Напишем такие обработчики:

И получим примерно такой результат:

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Пример 2. Показать картинку из базы данных на форме.

Для демонстрации воспользуемся первой обработкой, где мы записывали файл в БД. Теперь покажем на форме картинку, которая записана в реквизите «Картинка» выбранного на форме элемента справочника «Картинки».

Во-первых, добавим на форму поле, связанное с реквизитом «АдресДанныхКартинки». Например, перетащим мышкой этот реквизит в список элементов формы. Выберем и установим значение свойства «Вид» этого поля в «Поле картинки».

Во-вторых, напишем такую серверную процедуру:

И станем вызывать эту процедуру, например, из обработчика события «При изменении» поля «Картинка»:

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Сохранение двоичных данных в файл на клиенте

Думаю, с сохранением двоичных данных из базы данных в файл у Вас проблем не возникнет. По крайней мере, если Вы работаете не в веб-клиенте. Читаем, помещаем во временное хранилище на сервере, затем записываем в файл на клиенте.

Кодирование двоичных данных в формат Base64 и обратно

Тут все очень просто. Платформа имеет две глобальные функции, доступные везде:

Первая получает в качестве аргумента объект типа «ДвоичныеДанные», а возвращает его текстовое представление в кодировке base64, а вторая, наоборот, из текста в формате base64 возвращает объект типа «ДвоичныеДанные».

Не очень, правда, представляю, зачем нам это может понадобиться. Во всех встроенных типах объектов вроде ПочтовоеВложение или объектов для работы с XML необходимые преобразования платформа делает сама. Разве что нам потребуется работать с какими-то нестандартными форматами файлов для обмена с внешними системами…

Итого

На самых простых примерах мы увидели все основные принципы и методы работы с двоичными данными в 1С 8.3. Также коснулись актуальной сейчас темы устранения синхронных вызовов. Остальные возможности работы с двоичными данными Вы без труда реализуете по аналогии с рассмотренными здесь.

Спасибо за внимание. Желаю всем вершин профессионализма и глубин познаний. А главное — чтобы это приносило счастье в жизнь Вашу и окружающих.

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Источник

Бинарный формат

Двоичный (бинарный) файл — в широком смысле: последовательность произвольных байтов. Название связано с тем, что байты состоят из бит, то есть двоичных (англ. binary ) цифр.

В узком смысле слова двоичные файлы противопоставляются текстовым файлам. При этом с точки зрения технической реализации на уровне аппаратуры, текстовые файлы являются частным случаем двоичных файлов, и, таким образом, в широком значении слова под определение «двоичный файл» подходит любой файл.

Часто двоичными файлами называют исполняемые файлы и сжатые данные, однако некорректно так ограничивать это понятие.

Содержание

Визуализация

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

октетовкол-во битшестнадцатеричноевосьмеричноедесятичное
беззнаковое
десятичное
знаковое
1800

FF
000

377
0

255
-128

127
2160000

FFFF
000000

177777
0

65535
-32768

32767
43200000000

FFFFFFFF
00000000000

37777777777
0

4294967295
-2147483648

2147483647

Инструменты

Для визуализации

Для редактирования

Литература

Полезное

Смотреть что такое «Бинарный формат» в других словарях:

Формат X файла — формат файла для хранения 3D объектов, созданный компанией Microsoft. Этот формат хранит информацию о геометрии 3D объекта (координаты вершин и координаты нормалей), текстурные координаты, описание материалов, пути и названия к текстурам, которые … Википедия

Двоичный формат файлов Microsoft Excel 97—2007 — Microsoft Excel (Windows) Microsoft Excel 2007 Тип Табличный процессор Разработчик ОС Microsoft Windows … Википедия

Двоичный формат файлов Microsoft Excel 97—2000 — Microsoft Excel (Windows) Microsoft Excel 2007 Тип Табличный процессор Разработчик ОС Microsoft Windows … Википедия

Двоичный формат файлов Microsoft Word 97—2000 — Microsoft Word (Windows) Скриншот Microsoft Word 2007 Тип Текстовый процессор Разработчик Майкрософт … Википедия

Двоичный формат файлов Microsoft Word 97—2007 — Microsoft Word (Windows) Скриншот Microsoft Word 2007 Тип Текстовый процессор Разработчик Майкрософт … Википедия

AMF (формат обмена данными) — У этого термина существуют и другие значения, см. AMF. AMF (англ. Action Message Format, формат сообщений о действиях) бинарный формат обмена данными, использующийся в приложениях, написанных на Action Script. Построен на основе… … Википедия

X (DirectX) — Формат X файла формат файла для хранения 3D объектов, созданный компанией Этот формат хранит информацию о геометрии 3D объекта (координаты вершин и координаты нормалей), текстурные координаты, описание материалов, пути и названия к текстурам,… … Википедия

Источник

Двоичная система для чайников

Я решил сделать серию постов по информатике для чайников.

Если первый пост пойдёт хорошо, то будет еще несколько в том же духе.

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

Основа основ современного компьютера – ДВОИЧНАЯ СИСТЕМА СЧИСЛЕНИЯ (2-СС). Звучит угрожающе. Чтобы понять, что такое ДСС, и научиться с ней работать, надо уметь складывать, умножать и возводить числа в степень. Ок, даю шпаргалку.

Пусть у нас есть какое-то число. Допустим, 5. И мы хотим прибавить к нему другое число. Допустим, 3. Как нам это сделать? Давайте, представим число 5 как пять палочек:

А число 3 как три палочки:

Чтобы сложить их, сначала нарисуем пять палочек, потом допишем к ним еще три:

Теперь пересчитаем – получилось 8.

Зря смеётесь! Когда считаем палочками – в Википедии это называется (ВНИМАНИЕ! НЕНОРМОТИВНАЯ ЛЕКСИКА!) «Единичная непозиционная система счисления с единичным весовым коэффициентом». Ну, или попросту будем называть УНАРНАЯ СИСТЕМА СЧИСЛЕНИЯ (1-СС).

В обычной жизни мы (люди) пользуемся ДЕСЯТЕРИЧНОЙ СИСТЕМОЙ СЧИСЛЕНИЯ (10-СС). Она так называется, потому что у нас есть десять цифр. К тому же, она еще и ПОЗИЦИОННАЯ, что означает, что значение (вес) цифры зависит от её положения в записи числа, например, в числах 2, 21 и 211 цифра 2 означает, соответственно, единицы, десятки и сотни.

Десятичная система счисления

Как мы складываем в 10-СС? Например, столбиком:

Сначала складываем единицы: 2+9 = 11, т.е. при сложении двух единичных чиселок появился новый десяток. Ясное дело, что из них может появиться только один десяток, потому что самое большое, что можно сложить – это 9+9 = 18. Таким образом, разбиваем сложение на кусочки: вместо 12+99 мы делаем 2+9 + 10+90, т.е. единицы и десятки (а потом и сотни) складываем отдельно друг от друга:

12 + 99 = [разобьем на разряды]

= (2+9) + (10+90) = [сложим первые разряды]

= 11 + (10+90) = [снова разобьем на десятки и единицы]

= (1 + 10) + (10 + 90) = [снова перегруппируем, чтобы отделить десятки от единиц]

= 1 + (10 + 10 + 90) = [сложим десятки]

= 1 + (110) = [разобьем на сотни и десятки]

Ясно, что получится 111, но давайте остановимся и посмотрим на эту полученную форму записи:

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

564 = 500 + 60 + 4, 7031 = 7000 + 000 + 30 + 1

Особенность такой записи в том, что мы видим во всех разрядах одну значащую цифру (первую), все следующие за ней цифры – это нули. Запомните этот момент – это важно.

При этом вместо того, чтобы писать 1000, мы можем написать 10^3 (т.е. десять в третьей степени, что можно расшифровать как 10*10*10).

7000 = 7*1000 = 7 * 10^3

А всё число 7031 можно расписать так:

7031 = 7*10^3 + 0*10^2 + 3*10^1 + 1*10^0

Напомню, что любое число в нулевой степени даёт единицу, и 10^0 = 1, а любое число в первой степени даёт само себя 10^1 = 10. Еще напомню, что любое число умноженное на 0 даёт 0, т.е. 0*10^2 = 0.

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

Краткое отступление. Дорогие мои! Не путайте числа и цифры! Путать цифры и числа – это как путать буквы и звуки. Цифра – это просто символ для записи чисел. А число – это абстрактная величина, обычно означающее количество чего-нибудь. Думаю, все поняли. 🙂

Двоичная система счисления

Теперь, поговорим о 2-СС. Её особенность в том, что в ней есть всего 2 символа для записи чисел: 0 и 1. Что интересно, при этом любое число, которое можно записать в 10-СС, так же можно записать и в 2-СС, и даже в 1-СС!

Двоичная система тоже позиционная и отличается от десятичной тем, что в ней вместо 10 в степень возводится двойка, например, число двоичное число 101101 можно прочитать так:

101101= 1*2^5 + 0*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0

= 32 + 0 + 8 + 4 + 0 + 1 = 45 (это уже в десятичной системе)

Теперь давайте поскладываем в двоичной системе.

Начнём с простого: 0+0 = 0, 1+0 = 1, 0+1 = 1

Ничего удивительного, в 10-СС это точно так же выглядит.

Теперь посложнее: 1 + 1 = 10

А вот никакие не ДЕСЯТЬ! Это число ДВА. Просто в двоичной записи.

Нет. Это не десять плюс один! Это два плюс один! В 10-СС это выглядит так: 2 + 1 = 3, а в 1-СС так: || + | = |||. Ясно –понятно?

Хм… сложновато? Давайте упростим! По той же схеме, что и 12 + 99. Не забываем, что всё это в двоичной системе!

11 + 1 = [разобьем на разряды]

= (10 + 1) + 1 = [перегруппируем]

= 10 + (1 + 1) = [О! “1+1” складывать умеем!]

= 10 + 10 = [ну, здесь просто сначала игнорируем нули, складываем 1+1 и потом приписываем 0 к результату]

Ну, сколько можно. Это не СТО. Если то же самое записать в 10-СС, то получим: 3 + 1 = 4. Т.е. это 100 в записи 2-СС – это ЧЕТЫРЕ.

Ну, и для закрепления материала сложим в 2-СС:

= (1000 + 100 + 00 + 1) + (1000 + 000 + 00 + 1)

= (1000 + 1000) + (100 + 000) + (00 + 00) + (1 + 1)

= (10000) + (100) + (00) + (10)

= (10000) + (100) + (00 + 10)

А по-русски: 13 + 9 = 22

Большое спасибо! Очень хорошо объяснили. Всё понял.

А вот никакие не ДЕСЯТЬ! Это число ДВА. Просто в двоичной записи. И дальше нет объяснения почему и как. Естественно дальше идут примеры сложнее, но т.к. этот простой непонятен. Дальше залазить в дебри

поделитесь, пожалуйста, еще постами по информатике если есть

А теперь слушайте домашнее задание: построить синхрофазотрон.

Теперь посложнее: 1 + 1 = 10
Ой! Почему десять.
А вот никакие не ДЕСЯТЬ! Это число ДВА. Просто в двоичной записи.

Я тебя разочарую, но это десять и есть.

Кстати цифровая схемотехника основана на двоичной системе счисления. На основных законах булевой алгебры. 1+1=1 1+0=1 1*1=1 1*1=0

На самом деле все еще проще.

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Нейронные сети. Формулы обратного распространения

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

Благодарим за создание выпуска:

Переводчика – Федора Труфанова;

Редактора – Михаила Коротеева;

Диктора – Никифора Стасова;

Монтажера – Олега Жданова

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Нейронные сети. Обратное распространение ошибки

Привет, Лига образования!

Мы продолжаем переводить легендарный курс по нейросетям от 3blue1brown.

В предыдущей лекции мы узнали о градиентном спуске. Сегодня речь пойдет о методе обратного распространения — главном алгоритме обучения нейронных сетей.

Благодарим за создание выпуска:

Редактора – Михаила Коротеева;

Диктора – Никифора Стасова;

Монтажера – Олега Жданова

И бонус в комментариях, английский!

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Нейронные сети. Градиентный спуск: как учатся нейронные сети

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

Мы подготовили долгожданное продолжение лекций по нейросетям. Градиентный спуск: как учатся нейронные сети.

Благодарим за участие в выпуске:

Редакторов – Дмитрия Титова, Михаила Коротеева, Дмитрия Мирошниченко;

Корректора – Дмитрия Мирошниченко;

Дикторов – Никифора Стасова, Дарью Яговкину;

Монтажера – Олега Жданова.

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Разговор о системах счисления:
— Программист подарил своей женщине 5 роз, сказав «эта 101 роза тебе» (двоичная). Пещерный человек, подарил бы три розы, сказав «бери эти 111 роз» (унарная).
— То есть неандертальца от программиста отличает всего лишь ноль?
— Ну вообще введение 0 было огромным шагом для математики. Можно сказать первый мощный шаг к абстрактному мышлению. Так что в какой-то степени да, «0» — это переходная ступень между неандертальцем и программистом.

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Нейронные сети. Просто о сложном

Привет, Пикабу. Сегодня у нас кое-что действительно классное для Лиги образования.

Мы договорились о переводе и озвучке с автором самых крутых на Youtube видео про математику-информатику-физику.

И наша первая озвучка — видео о том, что же такое нейросети.

За это отличную озвучку мы благодарим Александра Колдаева.

Если хочешь поучаствовать в переводе или озвучке — напиши нам в вк, телеграм или facebook.

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Карты наук

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Выше был их автор. А вот и одна из его карт (по физике):

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

О карте, нарисованной выше, Dominic подробно рассказал в следующем видео. Он рассказал о ранней физике, об Эйнштейне и его теориях специальной и общей относительности, и о подвидах квантовой физики.

Кстати говоря, помимо карт наук, на его странице во flickr есть интересные постеры о том, как мы уже сейчас используем квантовые технологии.

Все его видео по картам наук публикуются в следующем плейлисте: https://www.youtube.com/playlist?list=PLOYRlicwLG3St5aEm02nc.
Они на английском, но уже есть и переводы.

Вот, например, по Computer Science:

А вот по математике:

Спасибо за внимание!

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

За день до экзамена

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Что такое двоичные данные что. Смотреть фото Что такое двоичные данные что. Смотреть картинку Что такое двоичные данные что. Картинка про Что такое двоичные данные что. Фото Что такое двоичные данные что

Ну, может и не сильно-то ждёт. Ну да ладно, всё равно любит. Наверное.

Источник

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

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