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ь3 жыл бұрын
@@priest_of_art потому значение степени ограничено чтобы не было переполнения
@leonmal23303 жыл бұрын
Добавь пожалуйста ещё видео на эту тему. Думал, это я чайник, а судя по комментам ни я один не до понял пару моментов. Разжуй нам повторно пожалуйста🙏 У тебя это выходит прекрасно!🙏🤗
@John.Doe.20253 жыл бұрын
@Alek OS В русском языке есть "Числа с плавающей запятой", исправьте вместо "точки", это неграмотное написание.
@theeverlastinglight57012 жыл бұрын
@@John.Doe.2025 все жизнь программисты называют с плавающей точкой и отдельные личности с плавающей запятой.
@John.Doe.20252 жыл бұрын
@@theeverlastinglight5701 Всю жизнь? Чью жизнь? Точкой начало называть быдло-самоучки в последние лет 10, когда уровень образования упал.
@spacejumper_dono3 жыл бұрын
Это самые крутые уроки по фундаментальным основам в ру сегменте
@alexfantast65663 жыл бұрын
Cпасибо за это видео! Концентрированная, систематизированная, рационально укомплектованная и последовательно представленная информация - ничего лишнего. Моё почтение. (по традиции)
@egorpetrov66522 жыл бұрын
Действительно отлично проделанная работа. Уложить в 15 минут суть представления чисел с точкой в памяти машины - лучшего материала я пока не видел. В книгах описано детальнее, с математическими выкладками, но там всё сложнее, скучнее и дольше в изучении. Понимаешь, когда визуализация существенно ускоряет освоение темы. Успехов в развитии канала.
@ildariario3 жыл бұрын
Спасибо, я столько всего копал и нифига не мог понять до конца. Все урывки какие то и противоречивая инфа. Спасибо, наконец то все пазлы собрались воедино! Продолжай, не останавливайся. Желаю огромных успехов дружище!
@timusbelkin Жыл бұрын
Тут нужно уточнить, что в примере 10 в основании - это запись в двоичном виде, а значение экспоненты - в десятичном. Т.е. если записано 1.1101*10^2, это значит число 1.1101, после перевода в десятичное число, нужно умножать на 2^2= 4
@Yapianyibil11 ай бұрын
Спасибо. Всю голову сломал. В видео сказано, что основание равно "десяти", а не один ноль. 10₂ Я уж стандарт искать начал.
@dimasolovod701510 ай бұрын
Спасибо большое за уточнение , тоже всю голову сломал
@recentlyalexander58643 жыл бұрын
Мужик, спасибо! Дай Бог тебе здоровья. Обнял.
@morrigan_ghost3 жыл бұрын
спасибо! качество уроков на высоте
@andreylarin2 жыл бұрын
Отличные у тебя уроки. Дикция хорошая и никакой левой болтовни. Моё уважение.
@WissenYT3 жыл бұрын
Какая у вас классная графика! Просто сижу и завидую =)
@ivandedenev63233 жыл бұрын
Мое почтение за качество материала и его иллюстрированность! Только по-прежнему клонит в сон во время просмотра из-за интонации и рваных смысловых пауз. И чем обусловлен выбор настолько релаксирующей музыки? Это же очевидно затрудняет восприятие!
@vladimirnechiporyuk29483 жыл бұрын
Уже посмотрел несколько видео этого канала. Пересмотрев не мало других роликов скажу, что здесь самые понятные объяснения. Очень крутой канал, благодарю!
@comicsmania67822 жыл бұрын
Я в шоке. У меня в вузе так попа горела с этой темы. Сейчас начал заниматься реверсивной инженерией, случайным образом обнаружил этот канал и понял, что по сути весь он посвящён тому, как работает компьютер, что прямо переплетается с тем, что я изучаю. Оказывается то, что давали в вузе не какая-то скучная хрень, а очень даже интересная фундаментальность всей IT-сферы. Эти уроки - золото, а этот человек - легенда.
@j.d.3890 Жыл бұрын
проблема в том что в вузе ты не понимаешь зачем это нужно, потому что не обьясняют на примерах из рабочей практики программиста (ее у преподавателей нету)
@untidycriminal3 жыл бұрын
Огромное спасибо за шикарные ролики. Было бы очень здорово, еслиб Вы поделились литературой /ссылками на информацию, которую излагаете в плейлисте. Ещё раз спасибо)
@vbelbel3 жыл бұрын
Большое спасибо! Это и правда лучшие видео во всем ру сегменте на подобные темы, где разобраны все нюансы и очень круто структурирована и преподнесена информация. Пожалуйста не останавливайтесь! Тот редкий случай, когда захотелось поблагодарить и оставить комментарий.
@kirillmelnikov78462 жыл бұрын
Качество сходу чувствуется. Спасибо, подписался!
@delir011 ай бұрын
Отличный ролик, но, кмк, не хватило двух фактов: 1. Число в любой записи и любом формате (не только IEEE754) нельзя хранить бесконечно точно. Так как множество вещественных чисел бесконечно (между двумя любыми числами всегда существует число, которое будет больше одного и меньше другого), а память конечна. Поэтому проблема не в стандарте (мне показалось из ролика, что стандарт как будто обвиняют в этом), а в самой природе чисел 2. С увеличением числа (в десятичном виде) его точность уменьшается. Это очевидно, если подумать, но мало кто задумывается. С какого-то момента прибавление единицы к числу будет давать прежнее число, а не число, большее на единицу
@nimbabul8384 Жыл бұрын
плавающая точка просто взрыв мозга! Спасибо, наконец-то достойный повод для взрыва мозга, а не вот этв вот вся херня, творящаяся вокруг
@dashayakuninskikh5805 Жыл бұрын
Спасибо за помощь в изучении предмета
@korewatorika Жыл бұрын
Наконец-то стало понятно, почему float себя так ведёт, только после этого видоса. Спасибо!
@alexmarkov99432 жыл бұрын
Респект, автору. Благодаря объяснению понял что еще люди земли не создали комп который может высчитать абсолютный "НОЛЬ" , а то б уже давно смогли понять физические свойства тонких материй мироздания и научились путешествовать в космосе. В общем есть направление куда двигаться и над чем работать, человечеству. )))))
@ДмитрийГусев-м4я2 жыл бұрын
много раз в видео про ЭВМ слышал про процессоры работающие с плавающей точкой, но наконец то мне объяснили что это такое и с чем это едят
@anastasiyazueva72942 жыл бұрын
Огромное спасибо! Просмотрела огромную кучу роликов по этой теме, но поняла все только после просмотра ВАШЕГО ролика!!! СПАСИБО!!!!!
@sykrom7653 жыл бұрын
После этих видео понимаю, что странный у меня ВУЗ. Они лезут очень глубоко, пропуская вот этот уровень, что открывается в этих видеороликах. Нас учат алгоритмам основных мат. операций на процессорах для чисел с ПЗ, но вот такие банальные вещи не поясняются. С материалами из этого видео были бы понятны более глубокие моменты. Очень странно. Тем не менее, благодаря этим роликам очень часто заполняются мои пробелы в понимании тех или иных вещей, особенно эффективны в этом плане были ролики о функционировании процессора, о памяти и о кэше. Спасибо! Делайте то, что делаете. Рунет очень нуждается в этом без преувеличения.
@sykrom7653 жыл бұрын
@@H01HUD9 в ДНРовском. Название вряд ли что-то даст
@ВикторШирокий-ъ1й8 ай бұрын
Спасибо за такой крутой контент!!! Даже совсем не сведущий может начинать понимать технологии👍🏻👍🏻👍🏻 немного поломал голову над 14:24, но нашел в комментах 😉
@speed06633 жыл бұрын
Спасибо большое за столь полезную информацию!)
@predatorymink34002 жыл бұрын
Наконец-то хорошее видео по этой непростой для новичка теме. Большое спасибо)
@Собственник-т3к3 жыл бұрын
Круто, я думал люди которые разрабатывают компы на любые такие проблемы с хранением находили решения, а тут оно как бы есть, но как бы и неточное
@crawner6198 Жыл бұрын
14:20 мы сдвинули точку на 2 разряда влево, то есть степень = 2 (10 в двоичной), записываем в поле для степени 2 +127 =129 (10000001 - в двоичной) но в видео 01111100, почему?
@Wave_ch2 ай бұрын
Похоже автор ошибся. Я написал функцию, которая принимает на вход число типа float, а возвращает его двоичное представление в формате строки (тип данных string), чётко такие же шаги реализовал в программном коде, которые описаны в алгоритме в этом видео. У меня тоже 10000001 в экспоненте получается
@TheDergraue2 жыл бұрын
Друг, очень классно объясняешь, не забрасывай канал!
@aleksunknow1133 жыл бұрын
Слушай, ну моё почтение к качеству подачи материала, просто супер, сразу же подписался, продолжай!
@DboyRough3 жыл бұрын
только наткнулся на канал , сразу подписался и жадно просмотрел все ролики , кроме ассемблера пока! Благодарю за полезный материал и годную подачу, успехов!!!
@ox-po3633 ай бұрын
Какое же крутое видео!!!! Просто офигенный контент и структурированное объяснение основ! Огромное спасибо! ❤
@Artem-u5e9c Жыл бұрын
Шикарно! Я наконец разобрался в вопросе. Спасибо!
@tolikvoron62 жыл бұрын
Все это "мы проходили". Не случайно в кавычках. Спасибо, молодец....
@hamsterDance1212 Жыл бұрын
лучшее объяснение, спасибо большое!
@lesgrossman8343 жыл бұрын
- Что стало с плавающей точкой? - Она утонула...
@chokayes78302 жыл бұрын
это все прекрасно, но еще бы примерчиков как правильно со всем этим безобразием работать на практике.
@2rangal2 жыл бұрын
Спасибо большое, мне это помогло в понимании темы и соответственно в обучении. Подробно и понятно изложено!
@wubbalubbadubdub13793 жыл бұрын
чувак, ты просто Бог!! спасибо за такое понятное видео )
@programmer-stories3 жыл бұрын
Спасибо, шикарный ролик. Жду продолжения по ассемблеру ))
@__housemd__67723 жыл бұрын
Отличная работа, рекомендую всем!
@andreynemera653 жыл бұрын
Отличный ролик. Но, все же имеется место для улучшений. На шестой минуте где картинка какие биты за что отвечают - это просто кровь из глаз. Цвета расставленны от балды, мешанина с двоичной мантиссой и десятичным порядком. Обозначь знак и знаковый бит одним цветом, мантиссу и ее биты другим, а порядок и их биты третьим. Кроме того, на картинке двоичную единицу целой части, а также десятку экспоненты напиши обычно, не выделяя цветом вообще (примерно как точку-разделитель целой и дрбной части). И сразу читаемость материала повысится на порядок.
@m_stifeev3 жыл бұрын
Согласен.
@goshamotosport90822 жыл бұрын
Редко пишу комменты , но хочу сказать спасибо автору за его труд. Подписка и лайк под каждым видео!
@Das.Kleine.Krokodil2 жыл бұрын
Не сухая информатика, а и как возникло итд - это интересно Спасибо
@Deniseich2 жыл бұрын
я вот так решил проблему пару лет назад :). если вам не нужна сверх ацкая невероятная скорость вычислений а сойдет и чуть меньшая, то вот - 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
@MaxVav11 ай бұрын
Спасибо! Очень интересно! Красиво глазам. Смотрю уже не один ролик, но черт как сложно сходу понять.
@quibex02 жыл бұрын
От души душевно в душу! Продолжай в том же духе! спасбо!
@alexanderscheffer38823 жыл бұрын
Просто шикарно! Огромное спасибо за твой труд! Качество материала на очень высокопоставленно уровне👌
@__AleM__2 жыл бұрын
5:16 - ну на самом-то деле, поскольку первая цифра мантиссы всегда будет единица, то мантиссу сдвигают влево ещё на один знак, изменяя степень, а единицу подразумевают.
@leonidkuznetsov8797 Жыл бұрын
Очень интересно, но остались два вопроса, на которые я надеялся получить ответы: 1. Как выполнять операции с числами с плавающей точкой? 2. Как записать 0 в этом формате?
@Alex_Suvorov10 ай бұрын
на второй вопрос ответ скорее всего следующий, нулевой порядок совместно с нулевой мантиссой представляет собой 0
@Alex_Suvorov10 ай бұрын
то есть 0или1 0000...00000, первый бит знака по сути не важен
@castlegrafa2 жыл бұрын
Молоток, побольше бы таких спецов👍
@orgoon76972 жыл бұрын
Как будто Таненнбаума почитал. Спасибо, очень толково
@linqusik Жыл бұрын
Спасибо за материал, может я что не понял но на 14:24 дробная часть должна быть 127+2 то есть 129 в двоичной форме то есть 10000001
@ВикторШирокий-ъ1й8 ай бұрын
У меня тот же вопрос…примеры в плане степени идентичны ведь
@АлександрАверин-б4ю2 жыл бұрын
Я не могу выразить насколько это круто объяснено. Спосибо огромное
@ПендальфСерый-б3м Жыл бұрын
Решение проблемы простое: нужно хранить дробные числа как отношение целых. Например, 5,9=59/10 или в двоичной системе: 111011/1010. И все, никакой потери точности. В этом виде число можно умножать, делить и делать с ним что угодно, с абсолютной точностью. Проблема только в том, что при большом количестве операций умножения/деления длина числителя и знаменателя будет быстро разрастаться. Но, например, в бухгалтерии не так часто нужно последовательно умножать и делить, так что можно использовать такой формат записи там, во избежание мухлежа с чьей-то зарплатой.
@kadyr2 жыл бұрын
спасибо, бро! круто как всегда, объяснил невероятно доступно и наглядно!
@BB-ti9bf2 жыл бұрын
Как обычно - концентрированная годнота! Спасибо! Я эмбеддер, и если надо работать с FP и камень без FPU, то при работе с термодатчиками и прочими аналоговыми значениями, я просто избавлялся от запятой путем сдвига и работал как с целыми числами, (с 57.354 я работал как с 5735400)и в конкретных узких приложениях удавалось избавляться от описаных в видео геморроев . 🙄
@lesgrossman8342 жыл бұрын
За пределами термодатчиков целый мир!
@BB-ti9bf2 жыл бұрын
@@lesgrossman834 я в курсе, и описал один из частных случаев
@artemkopach32723 жыл бұрын
Ролик прекрасный, большое спасибо! Вот только не совсем понял момент на 14:20, когда мы привели число в экспоненциальный вид, получили 10 во второй степени или 10 в двоичной, для того, чтобы записать верно степень числа мы должны к 127 + n, где n - степень, в данном случае 2, получаем 129 = 10000001, почему получился степень получилась 01111100 = 124, ведь степень не -3, не ясно тут, если можно поясните, а то я думаю, что это я глупенький
@PanicWassano3 жыл бұрын
тоже это заметил, но видимо это опечатка, т.к. в вычислениях уже используется 10 (2 степень)
@AlekOS3 жыл бұрын
Да, это опечатка
@eul12393 жыл бұрын
Потому что биты степени хранятся в формате двоичной нотации с избытком
@realfootball3383 жыл бұрын
А ты думал почему у нас основа 10, а бинарный код соответсвует числам когда за основу взято 2. То есть для смещения комы в двуичном числе нужно нужно умножать на 2eN но никак не 10. Такая запись возможна только если у нас основа 10 или просто смещаем кому в десятичной системе.
@devope Жыл бұрын
@@AlekOS было бы удобнее, если бы про эту опечатку в описании было сказано.
@asudie_2 жыл бұрын
очень полезное видео, максимально приятно смотреть, спасибо большое
@silverroll20953 жыл бұрын
Самое интересное, что введя в калькулятор с функцией перевода в ieee754 с побитовым отображением, самый последний бит был равен единице, то есть вместо значения в уроке 0|1000_0001|011_1100_1100_1100_1100_1100 (5.8999996185302734375) было 0|1000_0001|011_1100_1100_1100_1100_1101 (0.900000095367431640625). Мог ошибиться, но похоже на правду. Видимо, округления производятся по-разному, в зависимости от его типа, описанного в ieee754, и определённого в программе. Спасибо за видео, наконец-то понял, как числа данного формата вообще работают, раньше не было желания с ними знакомиться, хотя понимал, что подобное поведение происходит из-за ограниченного числа бит, отводимых для хранения числа.
@ЛикаРазина-ф8ж3 жыл бұрын
Спасибо Вам огромное за видео!
@VailiyNikon2 жыл бұрын
обалденный рассказчик. больше таких видео!
@ildariario3 жыл бұрын
Было бы очень круто увидеть от Вас инфу про машинное эпсилон, как он вычисляется и почему прибавляя к числу определенные величины, значение не меняется. А также вычисление границ диапазона для чисел различных точностей ( половинной, одинарной, двойной...).
@ukravenger3 жыл бұрын
Потеря точности происходит из-за того, что для сложения двух чисел с плавающей точкой нужно вначале привести их к общей экспоненте. Для этого, в меньшем по модулю числе уменьшается мантисса в два раза, а экспонента, соответственно, увеличивается. Само число не меняется. Так до выравнивания экспонент. Т.к. длина мантиссы не бесконечная, то при определенной разнице экспонент получится что мантисса обнулилась. И, соответственно, при суммировании мантисс, сумма останется равной большей мантиссы, т.е. точность сложения потеряется.
@gunnargunaxe2 жыл бұрын
До того как я узнал, про стандарт числа с плавающей точкой, я думал что целая часть и дробная часть просто лежат по разным ячейкам в памяти, просто расположенным рядом😅 В микроконтроллерах, я так понял, часто вообще нет поддержки чисел с плавающей точкой, и используются множители представляя число как обычный int.
@alexkazimir3835Ай бұрын
Какой же высокий уровень материала и его подачи. Уважение
@denruslife98452 жыл бұрын
Самые познавательные уроки!
@sergeyshevchenko36463 жыл бұрын
Наконец то Winderton вернулся (правда в другом теле)(помню когда то был канал winderton и рисовал очень похожие анимации, в свое время топчик был). Чувак крутые уроки делаешь! Продолжай в том же духе. Подписка лайк колокольчик. Давай про tcp/ip и web тоже мути, большую аудиторию собирешь. Потом заграницу тебя будут звать. Самое главное не липи рекламу! А то аудиторию потеряешь в миг(как мне кажется). А рекламодатели полезут скоро (возможно уже). Вообщем жму руку за твои труды, могЁшь!
@titanovsky3 жыл бұрын
блин, чел, тебе повезло. Я на последнем видосе на этом канале благодарочку оставил в комментах, где упомянул интонацию соракса и монтаж как у вина, но соракс пропал, а вин оказался не очень порядочным человеком, поэтому для меня этот канал стал очень важным, и ещё упомянул нескольких. Без ссылок, без матов, без упоминания вируса, но ютуб по всей видимости удалил коммент(
@sergeyshevchenko36463 жыл бұрын
@@titanovsky а почему вин не очень порядочный чел? Я что то видать упустил?
@titanovsky3 жыл бұрын
@@sergeyshevchenko3646 в 19 году его топ донатер Артаник сделал пост на гитхабе про Вина, можешь загуглить. Там моменты с тем, что персональные курсы на самом деле неперсональные, по поводу токсичного отношения к другим, и многое другое.
@segu14592 жыл бұрын
Не надо инфоцыгана сравнивать с автором данного видео, это звучит как оскорбление
@titanovsky2 жыл бұрын
@@segu1459 нет
@annakulieva230110 ай бұрын
Спасибо! Это самое крутое объяснение, что я видела!
@webgoal32873 жыл бұрын
Блин спасибо.. Программирую давно.. Но никто так и не смог объяснить систему хранения плавающей запятой.. Ура теперь я понял... Лайк... ПОДПИСКА
@avastorneretal3 жыл бұрын
От лица меня и моих приятелей из универа, благодарю! Наконец-то нормальное объяснение этого сатанизма... С меня лайк и подписка, наткнулся на видео через рекомендацию видоса о ассемблере. Муторный достаточно подход с виртуалкой, мы делаем проще, у нас в универе ассемблер изучают через эмулятор процессора на архитектуре MIPS, называется MARS.
@Choomazo3 жыл бұрын
Кто хочет разобраться без заумных формул как компьютер считает числа с плавающей точкой, вот видео на англ, переводить лучше через яндекс так как автоматический гугл корявый kzbin.info/www/bejne/gmmyiqtnfp2khMk
@krendely0k3 ай бұрын
Ересь какая. Хорошо, что Ютуб заблокировали. Пойду в церковь схожу да квасу куплю.
@nikola-nikrasov3 жыл бұрын
8:10 бита для знака степени не предусмотрено, поэтому разобьём диапазон на 2. 0-127, 128-255 0......, 1....... Так получается бит для знака есть)
@DenisShaver2 жыл бұрын
Ну да. Он как флаг. Если его погасить (когда он установлен), получим положительную степень числа.
@skyycori5105 Жыл бұрын
Однозначно лайк, сделать пояснение понятнее наверно невозможно
@mohawberel3 жыл бұрын
спасибо. самое полное и понятное обьяснение которое я нашел
@malkin_laboratory46922 жыл бұрын
Пришёл из электроники в микроконтроллеры, поэтому это для меня легче, чем тот же пайтон и др. новомодные фичи.
@EugeneKaler Жыл бұрын
Прикольная подача материала. Напоминает Sorax 🙂
@dasheriko35482 жыл бұрын
Хотелось бы услышать про формат Decimal, который используется в финансах где решена проблема округления.
@soltaurus2 жыл бұрын
Отлично, спасибо! Повторенье - мать ученья
@-dubok-7 ай бұрын
Интересно, а как работа с такими числами реализована в электронных таблицах? Ведь там мы никогда не видим потери точности.
@Wave_ch2 ай бұрын
Дополнительные костыли с преобразованиями в строковый вид, подозреваю
@antoha9486 Жыл бұрын
Спасибо за твой труд.
@WebEnv3 жыл бұрын
Спасибо!
@krendely0k3 ай бұрын
Я бы ещё добавил бит для случаев с периодическими дробями на месте разрабов.
@kostiantynraslin72982 жыл бұрын
Спасибо, это волшебно
@KostsovKonstantin Жыл бұрын
Спасибо за ролик. Очень всё профессионально объяснено. Но почему не смогли ничего другого придумать ? 1) Можно все числа умножить на 100(1000, 10 000 на сколько хочешь). Проделать все операции, потом поделить на 100(). И ниоткуда бесконечная белиберда не появлялась. Так допустим нужно было работать с MMX. 2) Во времена двоично десятичных чисел можно было точку определить как 1010 и относительно неё считать.
@KostsovKonstantin Жыл бұрын
@@404Negative , я не понял тебя. 317.272375*5.4162=317272375*54162/10000000000=2 010 811 183 000 / 10 000 000 000. Для хранения верхнего числа достаточно 42 бита. Для нижнего 8, т.к. это 10 в какой-то степени. Это больше 32 бит но меньше 64. Технология MMX или SSE используют 128 бит. Сейчас математические процессоры способны аппаратно на следующий шаг накидывать результат предыдущей операции и ветвить по регистрам. Я это к тому, то это улетает за 128 бит. Но я не знаю, зачем я это ответил, т.к. не понял твой вопрос.
@alextepesh13322 жыл бұрын
первое разочарование по поводу точности математики постигло еще в школьные годы, когда, не помню по какому поводу, учитель сказал что-то вроде "допустим, X не равен нулю", тут то у меня и возникли первые сомнения. конечно, я понимаю, что это доказательство от обратного и все такое, но как это, сверх точная наука, может что-то допускать? с моей детской точки зрения, тут все было очень полярно, или равен, или не равен, других вариантов нет. потом, потом началась высшая математика, здесь уже стало понятно, что таки да, ответ искомый находится, но с точки зрения неофита, процесс вычисления не слишком отличался от гадания на кофейной гуще, в исполнении очень математически грамотного медиума. потом оказалось, что целые число - это все обман и предположения и всю жизнь именитые профессора перебрасываются случайными наборами чисел, как шаманы, рассказывая друг другу подробности обряда, при котором (о чудо!) идет дождь, то есть получается правильный ответ. или примерно правильный ответ, или, допустим правильный ответ. теперь же, после еще довольно краткого знакомства с миром базовых понятий компьютерного мира, что и супер точные системы вычисления имеют погрешность. но и это еще не все, оказывается, в мире квантовой физики, все эти вычисления полностью бесполезны (я утрирую), а число может иметь значение нуля, единицы и оба значения сразу. мне вот теперь любопытно, какое понятие, или событие, продолжит этот челендж?)
@ppc20123 жыл бұрын
Для того, чтобы понимать, для чего нужна вся эта инфа о том, как числа хранятся в памяти, есть очень крутое видео на английском, где представлен разбор численного алгоритма для вычисления функции f(x)=1/sqrt(x). Там используется хак, что двоичный логарифм числа это по сути его битовое представление в виде float, только лишь умноженное и сдвинутое на константы. Всем мало мальски интересующимся темой численных методов видео обязательно к ознакомлению. kzbin.info/www/bejne/pmnYkJ5oga6Nr9E
@НикитаБуров-ъ6р3 жыл бұрын
коротко и наглядно, спс
@Leonard_Gray3 жыл бұрын
О нет, я не успел разобраться, как работают числа с плавающей запятой, как теперь ещё на очереди числа с плавающей точкой. ОдО
@ArthurPozhidayev2 жыл бұрын
Видео прекрасное, жаль формат числа представлен неверно, но для ру ютуба - это действительно большой прогресс, людей заставили в комментах что-то читать. Успехов!
@МаксимСоболев-ф5и2 жыл бұрын
Формат представлен верно. Просто судя по комментариям не все способны понять, что эта запись указана в двоичной системе счисления, а не десятичной
@AlisaLisa-sx2te9 ай бұрын
Потрясающе!
@ПавелПетренков-й8у2 жыл бұрын
Какой качественный контент!
@IlyaKuznetsov1983 Жыл бұрын
Спасибо тебе мужик!
@TakedaShingen_15212 жыл бұрын
Я всё это уже проходил в факультете, но всё ровно было интересно послушать заново чему нас учили😄, Лайк!
@gimeron-db3 жыл бұрын
С вещественными работать сложнее всего. Особенно, когда представляются и хранятся числа в разных системах счисления. 0.5 + 0.2 в двоичной системе считается также с ошибками, как 1/3 + 1/3 в десятичной.
@CatEggsMouth3 жыл бұрын
Это самое понятное из непонятного по плавающей точки что я видел
@ogam18552 жыл бұрын
Ты супер крут! Спасибо большое!
@romanbolgar Жыл бұрын
13:57 - Представить думаю их возможно. Что там представлять там дальше одни черепахи. Это же во мне число Пи. Хотя конечно есть и такие. Я думаю Проблема не только в записи А и В вычислительных мощностях. Для более точных вычислений Нужно дольше работать с этими числами
@Sergnavin Жыл бұрын
На 10 в степени нужно умножать десятичные числа. 105=10.5*10^1, а в двоичной системе основание двойка 2^e.
@ИванСпасский-г7ы2 жыл бұрын
А почему дробную часть не перевести по обычным правилам в двоичную систему, то Есть компьютеру надо будет запомнить знак, 2 числа - перед точкой и после.
@Александр-й7б9и2 жыл бұрын
Именно так и хранится тип Decimal, который используется при операциях с финансами. Но он более требователен к ресурсам