КАК РАБОТАЮТ ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ | ОСНОВЫ ПРОГРАММИРОВАНИЯ

Поделиться
HTML-код
  • Опубликовано: 16 дек 2024

Комментарии • 410

  • @AlekOS
    @AlekOS  3 года назад +65

    00:00 Введение
    00:46 Число с плавающей точкой
    01:37 Институт IEEE
    02:08 Математический сопроцессор
    02:48 Перевод дробных чисел
    03:53 Экспоненциальная запись
    05:27 Форматы хранения дробных чисел
    06:14 Хранение числа в формате одинарной точности
    07:36 Хранение степени
    10:24 Хранение специальных значений
    11:34 Восстановление числа из памяти
    13:06 Бесконечная дробь
    14:02 Запись бесконечной дроби в память
    14:46 Обзор других форматов
    15:50 Заключение

    • @ВасилийШумилов-о8ь
      @ВасилийШумилов-о8ь 3 года назад

      @@priest_of_art потому значение степени ограничено чтобы не было переполнения

    • @leonmal2330
      @leonmal2330 3 года назад +1

      Добавь пожалуйста ещё видео на эту тему. Думал, это я чайник, а судя по комментам ни я один не до понял пару моментов. Разжуй нам повторно пожалуйста🙏
      У тебя это выходит прекрасно!🙏🤗

    • @John.Doe.2025
      @John.Doe.2025 3 года назад

      @Alek OS В русском языке есть "Числа с плавающей запятой", исправьте вместо "точки", это неграмотное написание.

    • @theeverlastinglight5701
      @theeverlastinglight5701 2 года назад +1

      @@John.Doe.2025 все жизнь программисты называют с плавающей точкой и отдельные личности с плавающей запятой.

    • @John.Doe.2025
      @John.Doe.2025 2 года назад

      @@theeverlastinglight5701 Всю жизнь? Чью жизнь? Точкой начало называть быдло-самоучки в последние лет 10, когда уровень образования упал.

  • @spacejumper_dono
    @spacejumper_dono 3 года назад +422

    Это самые крутые уроки по фундаментальным основам в ру сегменте

  • @alexfantast6566
    @alexfantast6566 3 года назад +83

    Cпасибо за это видео! Концентрированная, систематизированная, рационально укомплектованная и последовательно представленная информация - ничего лишнего. Моё почтение. (по традиции)

  • @morrigan_ghost
    @morrigan_ghost 3 года назад +67

    спасибо! качество уроков на высоте

  • @egorpetrov6652
    @egorpetrov6652 2 года назад +44

    Действительно отлично проделанная работа. Уложить в 15 минут суть представления чисел с точкой в памяти машины - лучшего материала я пока не видел. В книгах описано детальнее, с математическими выкладками, но там всё сложнее, скучнее и дольше в изучении. Понимаешь, когда визуализация существенно ускоряет освоение темы. Успехов в развитии канала.

  • @ildariario
    @ildariario 3 года назад +35

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

  • @recentlyalexander5864
    @recentlyalexander5864 3 года назад +12

    Мужик, спасибо! Дай Бог тебе здоровья. Обнял.

  • @timusbelkin
    @timusbelkin Год назад +34

    Тут нужно уточнить, что в примере 10 в основании - это запись в двоичном виде, а значение экспоненты - в десятичном. Т.е. если записано 1.1101*10^2, это значит число 1.1101, после перевода в десятичное число, нужно умножать на 2^2= 4

    • @Yapianyibil
      @Yapianyibil 11 месяцев назад +4

      Спасибо. Всю голову сломал. В видео сказано, что основание равно "десяти", а не один ноль. 10₂ Я уж стандарт искать начал.

    • @dimasolovod7015
      @dimasolovod7015 10 месяцев назад +4

      Спасибо большое за уточнение , тоже всю голову сломал

  • @WissenYT
    @WissenYT 3 года назад +16

    Какая у вас классная графика! Просто сижу и завидую =)

  • @andreylarin
    @andreylarin 2 года назад +2

    Отличные у тебя уроки. Дикция хорошая и никакой левой болтовни.
    Моё уважение.

  • @ivandedenev6323
    @ivandedenev6323 3 года назад +2

    Мое почтение за качество материала и его иллюстрированность! Только по-прежнему клонит в сон во время просмотра из-за интонации и рваных смысловых пауз. И чем обусловлен выбор настолько релаксирующей музыки? Это же очевидно затрудняет восприятие!

  • @crawner6198
    @crawner6198 Год назад +16

    14:20 мы сдвинули точку на 2 разряда влево, то есть степень = 2 (10 в двоичной), записываем в поле для степени 2 +127 =129 (10000001 - в двоичной) но в видео 01111100, почему?

    • @Wave_ch
      @Wave_ch 2 месяца назад

      Похоже автор ошибся. Я написал функцию, которая принимает на вход число типа float, а возвращает его двоичное представление в формате строки (тип данных string), чётко такие же шаги реализовал в программном коде, которые описаны в алгоритме в этом видео. У меня тоже 10000001 в экспоненте получается

  • @comicsmania6782
    @comicsmania6782 2 года назад +3

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

    • @j.d.3890
      @j.d.3890 Год назад +2

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

  • @kirillmelnikov7846
    @kirillmelnikov7846 2 года назад +2

    Качество сходу чувствуется. Спасибо, подписался!

  • @vladimirnechiporyuk2948
    @vladimirnechiporyuk2948 3 года назад +3

    Уже посмотрел несколько видео этого канала. Пересмотрев не мало других роликов скажу, что здесь самые понятные объяснения. Очень крутой канал, благодарю!

  • @untidycriminal
    @untidycriminal 3 года назад +18

    Огромное спасибо за шикарные ролики. Было бы очень здорово, еслиб Вы поделились литературой /ссылками на информацию, которую излагаете в плейлисте. Ещё раз спасибо)

  • @nimbabul8384
    @nimbabul8384 Год назад +2

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

  • @korewatorika
    @korewatorika Год назад +1

    Наконец-то стало понятно, почему float себя так ведёт, только после этого видоса. Спасибо!

  • @vbelbel
    @vbelbel 3 года назад +1

    Большое спасибо! Это и правда лучшие видео во всем ру сегменте на подобные темы, где разобраны все нюансы и очень круто структурирована и преподнесена информация. Пожалуйста не останавливайтесь! Тот редкий случай, когда захотелось поблагодарить и оставить комментарий.

  • @dashayakuninskikh5805
    @dashayakuninskikh5805 Год назад +4

    Спасибо за помощь в изучении предмета

  • @delir0
    @delir0 11 месяцев назад +1

    Отличный ролик, но, кмк, не хватило двух фактов:
    1. Число в любой записи и любом формате (не только IEEE754) нельзя хранить бесконечно точно. Так как множество вещественных чисел бесконечно (между двумя любыми числами всегда существует число, которое будет больше одного и меньше другого), а память конечна. Поэтому проблема не в стандарте (мне показалось из ролика, что стандарт как будто обвиняют в этом), а в самой природе чисел
    2. С увеличением числа (в десятичном виде) его точность уменьшается. Это очевидно, если подумать, но мало кто задумывается. С какого-то момента прибавление единицы к числу будет давать прежнее число, а не число, большее на единицу

  • @alexmarkov9943
    @alexmarkov9943 2 года назад

    Респект, автору. Благодаря объяснению понял что еще люди земли не создали комп который может высчитать абсолютный "НОЛЬ" , а то б уже давно смогли понять физические свойства тонких материй мироздания и научились путешествовать в космосе. В общем есть направление куда двигаться и над чем работать, человечеству. )))))

  • @Собственник-т3к
    @Собственник-т3к 3 года назад +1

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

  • @sykrom765
    @sykrom765 3 года назад +3

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

    • @sykrom765
      @sykrom765 3 года назад

      @@H01HUD9 в ДНРовском. Название вряд ли что-то даст

  • @speed0663
    @speed0663 3 года назад +4

    Спасибо большое за столь полезную информацию!)

  • @hamsterDance1212
    @hamsterDance1212 Год назад +1

    лучшее объяснение, спасибо большое!

  • @ДмитрийГусев-м4я
    @ДмитрийГусев-м4я 2 года назад

    много раз в видео про ЭВМ слышал про процессоры работающие с плавающей точкой, но наконец то мне объяснили что это такое и с чем это едят

  • @DboyRough
    @DboyRough 3 года назад

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

  • @ВикторШирокий-ъ1й
    @ВикторШирокий-ъ1й 9 месяцев назад +1

    Спасибо за такой крутой контент!!! Даже совсем не сведущий может начинать понимать технологии👍🏻👍🏻👍🏻 немного поломал голову над 14:24, но нашел в комментах 😉

  • @TheDergraue
    @TheDergraue 2 года назад

    Друг, очень классно объясняешь, не забрасывай канал!

  • @aleksunknow113
    @aleksunknow113 3 года назад

    Слушай, ну моё почтение к качеству подачи материала, просто супер, сразу же подписался, продолжай!

  • @tolikvoron6
    @tolikvoron6 2 года назад

    Все это "мы проходили". Не случайно в кавычках. Спасибо, молодец....

  • @anastasiyazueva7294
    @anastasiyazueva7294 2 года назад

    Огромное спасибо! Просмотрела огромную кучу роликов по этой теме, но поняла все только после просмотра ВАШЕГО ролика!!! СПАСИБО!!!!!

  • @predatorymink3400
    @predatorymink3400 2 года назад

    Наконец-то хорошее видео по этой непростой для новичка теме. Большое спасибо)

  • @chokayes7830
    @chokayes7830 2 года назад +2

    это все прекрасно, но еще бы примерчиков как правильно со всем этим безобразием работать на практике.

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 2 года назад

    Не сухая информатика, а и как возникло итд - это интересно
    Спасибо

  • @Artem-u5e9c
    @Artem-u5e9c 2 года назад

    Шикарно! Я наконец разобрался в вопросе. Спасибо!

  • @artemkopach3272
    @artemkopach3272 3 года назад +32

    Ролик прекрасный, большое спасибо! Вот только не совсем понял момент на 14:20, когда мы привели число в экспоненциальный вид, получили 10 во второй степени или 10 в двоичной, для того, чтобы записать верно степень числа мы должны к 127 + n, где n - степень, в данном случае 2, получаем 129 = 10000001, почему получился степень получилась 01111100 = 124, ведь степень не -3, не ясно тут, если можно поясните, а то я думаю, что это я глупенький

    • @PanicWassano
      @PanicWassano 3 года назад

      тоже это заметил, но видимо это опечатка, т.к. в вычислениях уже используется 10 (2 степень)

    • @AlekOS
      @AlekOS  3 года назад +26

      Да, это опечатка

    • @eul1239
      @eul1239 3 года назад

      Потому что биты степени хранятся в формате двоичной нотации с избытком

    • @realfootball338
      @realfootball338 3 года назад +3

      А ты думал почему у нас основа 10, а бинарный код соответсвует числам когда за основу взято 2. То есть для смещения комы в двуичном числе нужно нужно умножать на 2eN но никак не 10. Такая запись возможна только если у нас основа 10 или просто смещаем кому в десятичной системе.

    • @devope
      @devope Год назад +2

      @@AlekOS было бы удобнее, если бы про эту опечатку в описании было сказано.

  • @programmer-stories
    @programmer-stories 3 года назад +1

    Спасибо, шикарный ролик. Жду продолжения по ассемблеру ))

  • @__housemd__6772
    @__housemd__6772 3 года назад +1

    Отличная работа, рекомендую всем!

  • @lesgrossman834
    @lesgrossman834 3 года назад +3

    - Что стало с плавающей точкой?
    - Она утонула...

  • @ox-po363
    @ox-po363 4 месяца назад

    Какое же крутое видео!!!! Просто офигенный контент и структурированное объяснение основ! Огромное спасибо! ❤

  • @MaxVav
    @MaxVav Год назад

    Спасибо! Очень интересно! Красиво глазам. Смотрю уже не один ролик, но черт как сложно сходу понять.

  • @andreynemera65
    @andreynemera65 3 года назад +4

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

    • @m_stifeev
      @m_stifeev 3 года назад

      Согласен.

  • @goshamotosport9082
    @goshamotosport9082 3 года назад

    Редко пишу комменты , но хочу сказать спасибо автору за его труд. Подписка и лайк под каждым видео!

  • @Deniseich
    @Deniseich 2 года назад +2

    я вот так решил проблему пару лет назад :). если вам не нужна сверх ацкая невероятная скорость вычислений а сойдет и чуть меньшая, то вот -
    float a = 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f;
    print(a);
    Result - 0.8000001.
    имеем плохое число. надо превратить его в 0.8
    поначалу я сделал такую функцию -
    public float precOld(float value, float minValue)
    {
    value = value + (minValue / 2);
    value = value - (value % minValue);
    return value;
    }
    иногда все равно чето не хотело работать. хз почему. в minValue задаем 0.001 а может выдать результат 0.001000001
    тогда я пошел дальше и сделал такую дичь -
    public float prec(float value, float minValue)
    {
    float multiply = 1.0f / minValue;
    value *= multiply;
    value += 0.5f;
    value = Mathf.Floor(value);
    value /= multiply;
    return value;
    }
    теперь
    float a = 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f + 0.1f;
    a = prec(a, 0.1f);
    print(a);
    Result - 0.8
    доп проверка, мало ли наш принт шалит -
    if (a == 0.8f)
    print("YES");
    else
    print("NO");
    Result - YES
    вуаля. все шик блеск. но конечно чуть медленнее будет работать чем максимально быстро :)). но думаю мало кто тут просчитывает ядерные реакции на компе. большинству нужно написать несложную игруху на юнити :) и иногда - оч редко - нужна таки нормальная точность у флоата.
    c комментариями режиссера -
    public float prec(float value, float minValue)
    {
    //на входе - 15,457 и 0.01
    //1 делим на 0.01. получаем 100
    float multiply = 1.0f / minValue;
    //ДИЧЬ. 1.0 поделить на 0.01 равно не 100, а 99.99999 :( непонятно. но фиксим
    //15.457 умножаем на 99.99999. получаем 1545,69984543 - считай 1545,7
    value *= multiply;
    //прибавляем к 1545,7 0.5, чтобы округление было правильным. получаем 1546,2
    value += 0.5f;
    //округляем до 1. получаем 1546
    value = Mathf.Floor(value);
    //предыдущие 2 строки кода можно заменить на - Mathf.RoundToInt(value); но я после этих флоатов уже ни в чем не уверен )))) и флор юзаю для стопроцентности результата
    //делим на 100. получаем 15,46
    value /= multiply;
    return value;
    }
    и я из этого видоса подумал что 0.8 вообще невозможно в память получается записать... что запишется только 0.800001..
    но нет, вот у меня норм 0.8 всетки выдает, в юнити, сишарп.
    наверняка есть какойто способ в какойто библиотеке одну строку вызвать которая по сути сделает то же самое. ну а я это сам написал. можно потратить год на поиски решения космической проблемы корни которой вообще можешь ты не знать откуда вообще растут и что вообще гуглить)) а можно самому за 10 минут написать решение этой проблемы которое не ухудшает скорость выполнения проги драматически, а значит просто решает проблему без последствий.
    UPD. с 5.9 тоже все хорошо работает -
    i.gyazo.com/ea3a3c47db31bcadb64af9a16d474be8.png
    i.gyazo.com/7ce372254326a2d221400500eaa4648f.png

  • @sergeyshevchenko3646
    @sergeyshevchenko3646 3 года назад +1

    Наконец то Winderton вернулся (правда в другом теле)(помню когда то был канал winderton и рисовал очень похожие анимации, в свое время топчик был). Чувак крутые уроки делаешь! Продолжай в том же духе. Подписка лайк колокольчик. Давай про tcp/ip и web тоже мути, большую аудиторию собирешь. Потом заграницу тебя будут звать. Самое главное не липи рекламу! А то аудиторию потеряешь в миг(как мне кажется). А рекламодатели полезут скоро (возможно уже). Вообщем жму руку за твои труды, могЁшь!

    • @titanovsky
      @titanovsky 3 года назад

      блин, чел, тебе повезло. Я на последнем видосе на этом канале благодарочку оставил в комментах, где упомянул интонацию соракса и монтаж как у вина, но соракс пропал, а вин оказался не очень порядочным человеком, поэтому для меня этот канал стал очень важным, и ещё упомянул нескольких. Без ссылок, без матов, без упоминания вируса, но ютуб по всей видимости удалил коммент(

    • @sergeyshevchenko3646
      @sergeyshevchenko3646 3 года назад

      @@titanovsky а почему вин не очень порядочный чел? Я что то видать упустил?

    • @titanovsky
      @titanovsky 3 года назад

      @@sergeyshevchenko3646 в 19 году его топ донатер Артаник сделал пост на гитхабе про Вина, можешь загуглить. Там моменты с тем, что персональные курсы на самом деле неперсональные, по поводу токсичного отношения к другим, и многое другое.

    • @segu1459
      @segu1459 2 года назад +1

      Не надо инфоцыгана сравнивать с автором данного видео, это звучит как оскорбление

    • @titanovsky
      @titanovsky 2 года назад

      @@segu1459 нет

  • @quibex0
    @quibex0 2 года назад

    От души душевно в душу! Продолжай в том же духе! спасбо!

  • @BB-ti9bf
    @BB-ti9bf 2 года назад +4

    Как обычно - концентрированная годнота! Спасибо!
    Я эмбеддер, и если надо работать с FP и камень без FPU, то при работе с термодатчиками и прочими аналоговыми значениями, я просто избавлялся от запятой путем сдвига и работал как с целыми числами, (с 57.354 я работал как с 5735400)и в конкретных узких приложениях удавалось избавляться от описаных в видео геморроев . 🙄

    • @lesgrossman834
      @lesgrossman834 2 года назад

      За пределами термодатчиков целый мир!

    • @BB-ti9bf
      @BB-ti9bf 2 года назад

      @@lesgrossman834 я в курсе, и описал один из частных случаев

  • @wubbalubbadubdub1379
    @wubbalubbadubdub1379 3 года назад +6

    чувак, ты просто Бог!! спасибо за такое понятное видео )

  • @2rangal
    @2rangal 2 года назад

    Спасибо большое, мне это помогло в понимании темы и соответственно в обучении. Подробно и понятно изложено!

  • @__AleM__
    @__AleM__ 2 года назад +2

    5:16 - ну на самом-то деле, поскольку первая цифра мантиссы всегда будет единица, то мантиссу сдвигают влево ещё на один знак, изменяя степень, а единицу подразумевают.

  • @castlegrafa
    @castlegrafa 2 года назад

    Молоток, побольше бы таких спецов👍

  • @ЛикаРазина-ф8ж
    @ЛикаРазина-ф8ж 3 года назад +1

    Спасибо Вам огромное за видео!

  • @VailiyNikon
    @VailiyNikon 2 года назад

    обалденный рассказчик. больше таких видео!

  • @alexanderscheffer3882
    @alexanderscheffer3882 3 года назад +4

    Просто шикарно! Огромное спасибо за твой труд! Качество материала на очень высокопоставленно уровне👌

  • @orgoon7697
    @orgoon7697 2 года назад +1

    Как будто Таненнбаума почитал. Спасибо, очень толково

  • @silverroll2095
    @silverroll2095 3 года назад

    Самое интересное, что введя в калькулятор с функцией перевода в ieee754 с побитовым отображением, самый последний бит был равен единице, то есть вместо значения в уроке 0|1000_0001|011_1100_1100_1100_1100_1100 (5.8999996185302734375) было 0|1000_0001|011_1100_1100_1100_1100_1101 (0.900000095367431640625). Мог ошибиться, но похоже на правду. Видимо, округления производятся по-разному, в зависимости от его типа, описанного в ieee754, и определённого в программе.
    Спасибо за видео, наконец-то понял, как числа данного формата вообще работают, раньше не было желания с ними знакомиться, хотя понимал, что подобное поведение происходит из-за ограниченного числа бит, отводимых для хранения числа.

  • @АлександрАверин-б4ю

    Я не могу выразить насколько это круто объяснено. Спосибо огромное

  • @kadyr
    @kadyr 2 года назад

    спасибо, бро! круто как всегда, объяснил невероятно доступно и наглядно!

  • @avastorneretal
    @avastorneretal 3 года назад

    От лица меня и моих приятелей из универа, благодарю!
    Наконец-то нормальное объяснение этого сатанизма...
    С меня лайк и подписка, наткнулся на видео через рекомендацию видоса о ассемблере.
    Муторный достаточно подход с виртуалкой, мы делаем проще, у нас в универе ассемблер изучают через эмулятор процессора на архитектуре MIPS, называется MARS.

    • @gladakas
      @gladakas 3 года назад

      Кто хочет разобраться без заумных формул как компьютер считает числа с плавающей точкой, вот видео на англ, переводить лучше через яндекс так как автоматический гугл корявый ruclips.net/video/L8OYx1I8qNg/видео.html

  • @annakulieva2301
    @annakulieva2301 11 месяцев назад

    Спасибо! Это самое крутое объяснение, что я видела!

  • @asudie_
    @asudie_ 2 года назад

    очень полезное видео, максимально приятно смотреть, спасибо большое

  • @denruslife9845
    @denruslife9845 2 года назад

    Самые познавательные уроки!

  • @EugeneKaler
    @EugeneKaler Год назад

    Прикольная подача материала. Напоминает Sorax 🙂

  • @antoha9486
    @antoha9486 Год назад

    Спасибо за твой труд.

  • @ildariario
    @ildariario 3 года назад +2

    Было бы очень круто увидеть от Вас инфу про машинное эпсилон, как он вычисляется и почему прибавляя к числу определенные величины, значение не меняется. А также вычисление границ диапазона для чисел различных точностей ( половинной, одинарной, двойной...).

    • @ukravenger
      @ukravenger 3 года назад +2

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

  • @webgoal3287
    @webgoal3287 3 года назад

    Блин спасибо.. Программирую давно.. Но никто так и не смог объяснить систему хранения плавающей запятой.. Ура теперь я понял... Лайк... ПОДПИСКА

  • @alexkazimir3835
    @alexkazimir3835 Месяц назад

    Какой же высокий уровень материала и его подачи. Уважение

  • @kostiantynraslin7298
    @kostiantynraslin7298 2 года назад

    Спасибо, это волшебно

  • @ПавелПетренков-й8у
    @ПавелПетренков-й8у 2 года назад

    Какой качественный контент!

  • @mohawberel
    @mohawberel 3 года назад

    спасибо. самое полное и понятное обьяснение которое я нашел

  • @countrysideshowyaigrock4689
    @countrysideshowyaigrock4689 Год назад

    Блин, охренеть, класс!!

  • @malkin_laboratory4692
    @malkin_laboratory4692 2 года назад

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

  • @skyycori5105
    @skyycori5105 Год назад

    Однозначно лайк, сделать пояснение понятнее наверно невозможно

  • @linqusik
    @linqusik Год назад +3

    Спасибо за материал, может я что не понял но на 14:24 дробная часть должна быть 127+2 то есть 129 в двоичной форме то есть 10000001

    • @ВикторШирокий-ъ1й
      @ВикторШирокий-ъ1й 9 месяцев назад

      У меня тот же вопрос…примеры в плане степени идентичны ведь

  • @soltaurus
    @soltaurus 2 года назад

    Отлично, спасибо! Повторенье - мать ученья

  • @ПендальфСерый-б3м

    Решение проблемы простое: нужно хранить дробные числа как отношение целых. Например, 5,9=59/10 или в двоичной системе: 111011/1010. И все, никакой потери точности. В этом виде число можно умножать, делить и делать с ним что угодно, с абсолютной точностью. Проблема только в том, что при большом количестве операций умножения/деления длина числителя и знаменателя будет быстро разрастаться. Но, например, в бухгалтерии не так часто нужно последовательно умножать и делить, так что можно использовать такой формат записи там, во избежание мухлежа с чьей-то зарплатой.

  • @ogam1855
    @ogam1855 2 года назад

    Ты супер крут! Спасибо большое!

  • @IlyaKuznetsov1983
    @IlyaKuznetsov1983 Год назад

    Спасибо тебе мужик!

  • @leonidkuznetsov8797
    @leonidkuznetsov8797 Год назад +1

    Очень интересно, но остались два вопроса, на которые я надеялся получить ответы:
    1. Как выполнять операции с числами с плавающей точкой?
    2. Как записать 0 в этом формате?

    • @Alex_Suvorov
      @Alex_Suvorov 11 месяцев назад

      на второй вопрос ответ скорее всего следующий, нулевой порядок совместно с нулевой мантиссой представляет собой 0

    • @Alex_Suvorov
      @Alex_Suvorov 11 месяцев назад

      то есть 0или1 0000...00000, первый бит знака по сути не важен

  • @WebEnv
    @WebEnv 3 года назад +2

    Спасибо!

  • @AlisaLisa-sx2te
    @AlisaLisa-sx2te 10 месяцев назад

    Потрясающе!

  • @НикитаБуров-ъ6р
    @НикитаБуров-ъ6р 3 года назад

    коротко и наглядно, спс

  • @dasheriko3548
    @dasheriko3548 3 года назад +1

    Хотелось бы услышать про формат
    Decimal, который используется в финансах где решена проблема округления.

  • @krendely0k
    @krendely0k 4 месяца назад +4

    Ересь какая. Хорошо, что Ютуб заблокировали. Пойду в церковь схожу да квасу куплю.

  • @TakedaShingen_1521
    @TakedaShingen_1521 3 года назад +1

    Я всё это уже проходил в факультете, но всё ровно было интересно послушать заново чему нас учили😄, Лайк!

  • @olegbest6068
    @olegbest6068 10 месяцев назад

    Это великолепно!

  • @Holme4
    @Holme4 Год назад

    16:11 - *0,6f + 0.3f = 0.9f* при округлении (отсечении дробной части) до десятка уравнение примет значение - *истина* так и работают с типом float, однако, если записать уравнение в таком виде, то если одно из данных чисел заменить переменной, и, вслучае если переменная примет "такое же число", уравнение может оказаться ложным...

  • @nomore7222
    @nomore7222 Год назад +2

    Как всегда шикарная подача и отменная плотность полезного материала, единственный момент, который я не совсем понял - 2:55 , Вы говорите переводим из десятичной в двоичную, а на экране появляется перевод из двоичной в десятичную 🧐

    • @MrRONE777
      @MrRONE777 Год назад

      Зашел сюда тоже это написать

  • @-dubok-
    @-dubok- 7 месяцев назад +2

    Интересно, а как работа с такими числами реализована в электронных таблицах? Ведь там мы никогда не видим потери точности.

    • @Wave_ch
      @Wave_ch 3 месяца назад

      Дополнительные костыли с преобразованиями в строковый вид, подозреваю

  • @nikola-nikrasov
    @nikola-nikrasov 3 года назад +3

    8:10 бита для знака степени не предусмотрено, поэтому разобьём диапазон на 2.
    0-127, 128-255
    0......, 1.......
    Так получается бит для знака есть)

    • @DenisShaver
      @DenisShaver 3 года назад +1

      Ну да. Он как флаг. Если его погасить (когда он установлен), получим положительную степень числа.

  • @gunnargunaxe
    @gunnargunaxe 2 года назад +1

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

  • @ArthurPozhidayev
    @ArthurPozhidayev 2 года назад

    Видео прекрасное, жаль формат числа представлен неверно, но для ру ютуба - это действительно большой прогресс, людей заставили в комментах что-то читать. Успехов!

    • @МаксимСоболев-ф5и
      @МаксимСоболев-ф5и 2 года назад +4

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

  • @alexsabyr
    @alexsabyr 10 месяцев назад

    Спасибо, было познавательно

  • @inbluegirl
    @inbluegirl 2 года назад

    Изумительная подача

  • @ИванСпасский-г7ы
    @ИванСпасский-г7ы 2 года назад +5

    А почему дробную часть не перевести по обычным правилам в двоичную систему, то Есть компьютеру надо будет запомнить знак, 2 числа - перед точкой и после.

    • @Александр-й7б9и
      @Александр-й7б9и 2 года назад +3

      Именно так и хранится тип Decimal, который используется при операциях с финансами. Но он более требователен к ресурсам

  • @alexdzyuba5123
    @alexdzyuba5123 3 года назад

    Спасибо большое!

  • @Pavel_6C
    @Pavel_6C 3 года назад +2

    А как работает формат decimal? В нём 0.2+0.1==0.3
    А ещё, как в приложении калькулятор от гугл хранятся дроби?

  • @dimas_34dimas37
    @dimas_34dimas37 6 месяцев назад +2

    Может я что то не понимаю, но в тайминге 4:30 говорится про порядок с основанием 10... ИМХО там основание 2 должно быть. Или я неправ?

    • @SalatikInMyHead
      @SalatikInMyHead 5 месяцев назад

      Ты неправ, а автор 🤤дурак. Это НЕ ДЕСЯТЬ ☝а ДВА в двоичной системе счисления (правильно пишется 10₂)🤓