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ь
2 жыл бұрын
@@priest_of_art потому значение степени ограничено чтобы не было переполнения
@leonmal2330
2 жыл бұрын
Добавь пожалуйста ещё видео на эту тему. Думал, это я чайник, а судя по комментам ни я один не до понял пару моментов. Разжуй нам повторно пожалуйста🙏 У тебя это выходит прекрасно!🙏🤗
@John.Doe.2025
2 жыл бұрын
@Alek OS В русском языке есть "Числа с плавающей запятой", исправьте вместо "точки", это неграмотное написание.
@theeverlastinglight5701
2 жыл бұрын
@@John.Doe.2025 все жизнь программисты называют с плавающей точкой и отдельные личности с плавающей запятой.
@John.Doe.2025
2 жыл бұрын
@@theeverlastinglight5701 Всю жизнь? Чью жизнь? Точкой начало называть быдло-самоучки в последние лет 10, когда уровень образования упал.
@spacejumper_dono
3 жыл бұрын
Это самые крутые уроки по фундаментальным основам в ру сегменте
@crawner6198
11 ай бұрын
14:20 мы сдвинули точку на 2 разряда влево, то есть степень = 2 (10 в двоичной), записываем в поле для степени 2 +127 =129 (10000001 - в двоичной) но в видео 01111100, почему?
@Wave_ch
5 күн бұрын
Похоже автор ошибся. Я написал функцию, которая принимает на вход число типа float, а возвращает его двоичное представление в формате строки (тип данных string), чётко такие же шаги реализовал в программном коде, которые описаны в алгоритме в этом видео. У меня тоже 10000001 в экспоненте получается
@alexfantast6566
3 жыл бұрын
Cпасибо за это видео! Концентрированная, систематизированная, рационально укомплектованная и последовательно представленная информация - ничего лишнего. Моё почтение. (по традиции)
@timusbelkin
Жыл бұрын
Тут нужно уточнить, что в примере 10 в основании - это запись в двоичном виде, а значение экспоненты - в десятичном. Т.е. если записано 1.1101*10^2, это значит число 1.1101, после перевода в десятичное число, нужно умножать на 2^2= 4
@Yapianyibil
9 ай бұрын
Спасибо. Всю голову сломал. В видео сказано, что основание равно "десяти", а не один ноль. 10₂ Я уж стандарт искать начал.
@dimasolovod7015
8 ай бұрын
Спасибо большое за уточнение , тоже всю голову сломал
@ildariario
2 жыл бұрын
Спасибо, я столько всего копал и нифига не мог понять до конца. Все урывки какие то и противоречивая инфа. Спасибо, наконец то все пазлы собрались воедино! Продолжай, не останавливайся. Желаю огромных успехов дружище!
@morrigan_ghost
3 жыл бұрын
спасибо! качество уроков на высоте
@WissenYT
2 жыл бұрын
Какая у вас классная графика! Просто сижу и завидую =)
@egorpetrov6652
2 жыл бұрын
Действительно отлично проделанная работа. Уложить в 15 минут суть представления чисел с точкой в памяти машины - лучшего материала я пока не видел. В книгах описано детальнее, с математическими выкладками, но там всё сложнее, скучнее и дольше в изучении. Понимаешь, когда визуализация существенно ускоряет освоение темы. Успехов в развитии канала.
@ОлегДемин-ц4у
2 жыл бұрын
Здравствуйте. Почему в записи бесконечной дроби на 14 минуте, в порядок вводится число01111100, когда должно по-моему 10000001?
@trek3456
2 жыл бұрын
Он ответил, что это опечатка.
@linqusik
Жыл бұрын
Спасибо за материал, может я что не понял но на 14:24 дробная часть должна быть 127+2 то есть 129 в двоичной форме то есть 10000001
@ВикторШирокий-ъ1й
7 ай бұрын
У меня тот же вопрос…примеры в плане степени идентичны ведь
@recentlyalexander5864
3 жыл бұрын
Мужик, спасибо! Дай Бог тебе здоровья. Обнял.
@artemkopach3272
3 жыл бұрын
Ролик прекрасный, большое спасибо! Вот только не совсем понял момент на 14:20, когда мы привели число в экспоненциальный вид, получили 10 во второй степени или 10 в двоичной, для того, чтобы записать верно степень числа мы должны к 127 + n, где n - степень, в данном случае 2, получаем 129 = 10000001, почему получился степень получилась 01111100 = 124, ведь степень не -3, не ясно тут, если можно поясните, а то я думаю, что это я глупенький
@PanicWassano
3 жыл бұрын
тоже это заметил, но видимо это опечатка, т.к. в вычислениях уже используется 10 (2 степень)
@AlekOS
2 жыл бұрын
Да, это опечатка
@eul1239
2 жыл бұрын
Потому что биты степени хранятся в формате двоичной нотации с избытком
@realfootball338
2 жыл бұрын
А ты думал почему у нас основа 10, а бинарный код соответсвует числам когда за основу взято 2. То есть для смещения комы в двуичном числе нужно нужно умножать на 2eN но никак не 10. Такая запись возможна только если у нас основа 10 или просто смещаем кому в десятичной системе.
@devope
Жыл бұрын
@@AlekOS было бы удобнее, если бы про эту опечатку в описании было сказано.
@ИванСпасский-г7ы
2 жыл бұрын
А почему дробную часть не перевести по обычным правилам в двоичную систему, то Есть компьютеру надо будет запомнить знак, 2 числа - перед точкой и после.
@Александр-й7б9и
2 жыл бұрын
Именно так и хранится тип Decimal, который используется при операциях с финансами. Но он более требователен к ресурсам
@minestone265
9 ай бұрын
Если нельзя поменять комп или язык, то тогда бежим менять математику
@untidycriminal
3 жыл бұрын
Огромное спасибо за шикарные ролики. Было бы очень здорово, еслиб Вы поделились литературой /ссылками на информацию, которую излагаете в плейлисте. Ещё раз спасибо)
@Rat56744
7 ай бұрын
На 6:16 должна быть степень у «10» вторая, а не десятая
@andreynemera65
2 жыл бұрын
Отличный ролик. Но, все же имеется место для улучшений. На шестой минуте где картинка какие биты за что отвечают - это просто кровь из глаз. Цвета расставленны от балды, мешанина с двоичной мантиссой и десятичным порядком. Обозначь знак и знаковый бит одним цветом, мантиссу и ее биты другим, а порядок и их биты третьим. Кроме того, на картинке двоичную единицу целой части, а также десятку экспоненты напиши обычно, не выделяя цветом вообще (примерно как точку-разделитель целой и дрбной части). И сразу читаемость материала повысится на порядок.
@m_stifeev
2 жыл бұрын
Согласен.
@Pavel_6C
2 жыл бұрын
А как работает формат decimal? В нём 0.2+0.1==0.3 А ещё, как в приложении калькулятор от гугл хранятся дроби?
@MichaelKondrashin
2 жыл бұрын
kzitem.info/news/bejne/tmaLnniasWaFmno Вы называете "10" - двойку в двоичной системе - "десяткой". Боюсь, это может запутать зрителя
@postoronny
2 жыл бұрын
Да, в двоичной системе лучше говорить "один ноль".
@MichaelKondrashin
2 жыл бұрын
@@postoronny в двоичной системе мы не говорим, а записываем числа. И в записи "10" означает "два". А "один ноль" может означать и, например, 8, если система восьмиричная
@postoronny
2 жыл бұрын
@@MichaelKondrashin , я слышал, как "мы не говорим". Не далее как в этом ролике ;) А "десять" - это всегда именно десять (два раза по пять). Только в двоичной системе оно будет выглядеть как "1010", а в восьмеричной - как "12".
@nimbabul8384
Жыл бұрын
плавающая точка просто взрыв мозга! Спасибо, наконец-то достойный повод для взрыва мозга, а не вот этв вот вся херня, творящаяся вокруг
@lesgrossman834
2 жыл бұрын
- Что стало с плавающей точкой? - Она утонула...
@dimas_34dimas37
4 ай бұрын
Может я что то не понимаю, но в тайминге 4:30 говорится про порядок с основанием 10... ИМХО там основание 2 должно быть. Или я неправ?
@SalatikInMyHead
3 ай бұрын
Ты неправ, а автор 🤤дурак. Это НЕ ДЕСЯТЬ ☝а ДВА в двоичной системе счисления (правильно пишется 10₂)🤓
@delir0
9 ай бұрын
Отличный ролик, но, кмк, не хватило двух фактов: 1. Число в любой записи и любом формате (не только IEEE754) нельзя хранить бесконечно точно. Так как множество вещественных чисел бесконечно (между двумя любыми числами всегда существует число, которое будет больше одного и меньше другого), а память конечна. Поэтому проблема не в стандарте (мне показалось из ролика, что стандарт как будто обвиняют в этом), а в самой природе чисел 2. С увеличением числа (в десятичном виде) его точность уменьшается. Это очевидно, если подумать, но мало кто задумывается. С какого-то момента прибавление единицы к числу будет давать прежнее число, а не число, большее на единицу
@Leonard_Gray
2 жыл бұрын
О нет, я не успел разобраться, как работают числа с плавающей запятой, как теперь ещё на очереди числа с плавающей точкой. ОдО
@-dubok-
5 ай бұрын
Интересно, а как работа с такими числами реализована в электронных таблицах? Ведь там мы никогда не видим потери точности.
@Wave_ch
14 күн бұрын
Дополнительные костыли с преобразованиями в строковый вид, подозреваю
@Deniseich
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
@SatMoon6969
5 ай бұрын
Выходит, что люди придумали кривые костыли и до сих пор их используют. И представляя, как эти "кривые" костыли придумывали, мозг кипит. Ещё сильное чувство неправильности интерпретации двоичной системы, прям на фундаментальном уровне где-то, как будто что-то проебали 😂😂😂
@Liziooooo
8 ай бұрын
а как получилось 1.1101 * 10^10 , степень 10 откуда образовалась?
@lostvayne871
2 жыл бұрын
А как компьютер определяет это int или float?
@shplace1
2 жыл бұрын
Какая-то голая теория по математике... Про точность вообще минимум слов. Про то, что делать с такими числами - вообще ни слова.
@sykrom765
2 жыл бұрын
После этих видео понимаю, что странный у меня ВУЗ. Они лезут очень глубоко, пропуская вот этот уровень, что открывается в этих видеороликах. Нас учат алгоритмам основных мат. операций на процессорах для чисел с ПЗ, но вот такие банальные вещи не поясняются. С материалами из этого видео были бы понятны более глубокие моменты. Очень странно. Тем не менее, благодаря этим роликам очень часто заполняются мои пробелы в понимании тех или иных вещей, особенно эффективны в этом плане были ролики о функционировании процессора, о памяти и о кэше. Спасибо! Делайте то, что делаете. Рунет очень нуждается в этом без преувеличения.
@sykrom765
2 жыл бұрын
@@H01HUD9 в ДНРовском. Название вряд ли что-то даст
@chokayes7830
2 жыл бұрын
это все прекрасно, но еще бы примерчиков как правильно со всем этим безобразием работать на практике.
@redice8928
2 жыл бұрын
всё же я не понимаю, что если мы сложим например 2.5 + 2.5 ; переведем число 2,5 в двоичную => 1.01 * 2^1 => мантисса = 01, степень = 1, представим степень в двоичном виде => 127 + 1 = 128 = 1000 0000. Выходит, согласно правилу, число 2,5 должно выглядеть как 0 1000 0000 0100 0000 0000 0000 0000 000. Сложим их и получим отрицательное число 1 0000 0000 1000 0000 0000 0000 0000 000. Что я не так делаю?
@gordonfreeman1082
2 жыл бұрын
Как в этом формате хранится число 0 (ноль)?
@greenkingshop1033
2 жыл бұрын
Всё хорошо... НО! На 8:37 выносная линия к значению "Степень - 8 бит" смещена на 1 пиксель относительно выносной линии значения "Дробная часть - 23 бита" Акела промахнулся.
@GeorgyDev11111
Жыл бұрын
я ели это заметил, с попытки 3 или 4, в целом это не так важно
@trezzh4
2 жыл бұрын
Не раскрыт вопрос представления числа 0.0 Очевидно, что в формате 1.xxxx * 10^yyyy 0,0 никак нельзя представить.
@slava6105
2 жыл бұрын
автор по какой-то причине пропустил часть стандарта про денормализованные числа
@alextepesh1332
2 жыл бұрын
первое разочарование по поводу точности математики постигло еще в школьные годы, когда, не помню по какому поводу, учитель сказал что-то вроде "допустим, X не равен нулю", тут то у меня и возникли первые сомнения. конечно, я понимаю, что это доказательство от обратного и все такое, но как это, сверх точная наука, может что-то допускать? с моей детской точки зрения, тут все было очень полярно, или равен, или не равен, других вариантов нет. потом, потом началась высшая математика, здесь уже стало понятно, что таки да, ответ искомый находится, но с точки зрения неофита, процесс вычисления не слишком отличался от гадания на кофейной гуще, в исполнении очень математически грамотного медиума. потом оказалось, что целые число - это все обман и предположения и всю жизнь именитые профессора перебрасываются случайными наборами чисел, как шаманы, рассказывая друг другу подробности обряда, при котором (о чудо!) идет дождь, то есть получается правильный ответ. или примерно правильный ответ, или, допустим правильный ответ. теперь же, после еще довольно краткого знакомства с миром базовых понятий компьютерного мира, что и супер точные системы вычисления имеют погрешность. но и это еще не все, оказывается, в мире квантовой физики, все эти вычисления полностью бесполезны (я утрирую), а число может иметь значение нуля, единицы и оба значения сразу. мне вот теперь любопытно, какое понятие, или событие, продолжит этот челендж?)
@ppc2012
2 жыл бұрын
Для того, чтобы понимать, для чего нужна вся эта инфа о том, как числа хранятся в памяти, есть очень крутое видео на английском, где представлен разбор численного алгоритма для вычисления функции f(x)=1/sqrt(x). Там используется хак, что двоичный логарифм числа это по сути его битовое представление в виде float, только лишь умноженное и сдвинутое на константы. Всем мало мальски интересующимся темой численных методов видео обязательно к ознакомлению. kzitem.info/news/bejne/0W6rxZ9ohXuLrKQ
@nikola-nikrasov
2 жыл бұрын
8:10 бита для знака степени не предусмотрено, поэтому разобьём диапазон на 2. 0-127, 128-255 0......, 1....... Так получается бит для знака есть)
@DenisShaver
2 жыл бұрын
Ну да. Он как флаг. Если его погасить (когда он установлен), получим положительную степень числа.
@ВикторШирокий-ъ1й
7 ай бұрын
Спасибо за такой крутой контент!!! Даже совсем не сведущий может начинать понимать технологии👍🏻👍🏻👍🏻 немного поломал голову над 14:24, но нашел в комментах 😉
@korewatorika
Жыл бұрын
Наконец-то стало понятно, почему float себя так ведёт, только после этого видоса. Спасибо!
@__AleM__
2 жыл бұрын
5:16 - ну на самом-то деле, поскольку первая цифра мантиссы всегда будет единица, то мантиссу сдвигают влево ещё на один знак, изменяя степень, а единицу подразумевают.
@speed0663
3 жыл бұрын
Спасибо большое за столь полезную информацию!)
@TimmertPlay
2 жыл бұрын
Очень круто. Единственный вопрос, я может быть прослушал, но не объяснено почему мы не можем переводить дробное число таким же образом через деление по модулю, как целое число. Почему так? Почему было решено умножать на 2? Разве не из-за этого и есть проблема? Раз мы знаем, что у нас есть число типа float у которого первый бит = знак, 8 бит = степень, а 23 бита = само число , что нам мешает в эти 23 бита записать 0.9 (из примера) в двоичном виде так, будто это обычное число. Пока писал комментарий - понял, что может быть не 0.9, а 0.09 например и такое уже не запишешь, как обычное целое число. Видимо сам себе ответил на вопрос...
@ivandedenev6323
2 жыл бұрын
Мое почтение за качество материала и его иллюстрированность! Только по-прежнему клонит в сон во время просмотра из-за интонации и рваных смысловых пауз. И чем обусловлен выбор настолько релаксирующей музыки? Это же очевидно затрудняет восприятие!
@krendely0k
Ай бұрын
Ересь какая. Хорошо, что Ютуб заблокировали. Пойду в церковь схожу да квасу куплю.
@dashayakuninskikh5805
Жыл бұрын
Спасибо за помощь в изучении предмета
@orgoon7697
2 жыл бұрын
Как будто Таненнбаума почитал. Спасибо, очень толково
@romanbolgar
10 ай бұрын
13:57 - Представить думаю их возможно. Что там представлять там дальше одни черепахи. Это же во мне число Пи. Хотя конечно есть и такие. Я думаю Проблема не только в записи А и В вычислительных мощностях. Для более точных вычислений Нужно дольше работать с этими числами
@krendely0k
Ай бұрын
Я бы ещё добавил бит для случаев с периодическими дробями на месте разрабов.
@ox-po363
Ай бұрын
Какое же крутое видео!!!! Просто офигенный контент и структурированное объяснение основ! Огромное спасибо! ❤
@comicsmania6782
2 жыл бұрын
Я в шоке. У меня в вузе так попа горела с этой темы. Сейчас начал заниматься реверсивной инженерией, случайным образом обнаружил этот канал и понял, что по сути весь он посвящён тому, как работает компьютер, что прямо переплетается с тем, что я изучаю. Оказывается то, что давали в вузе не какая-то скучная хрень, а очень даже интересная фундаментальность всей IT-сферы. Эти уроки - золото, а этот человек - легенда.
@j.d.3890
10 ай бұрын
проблема в том что в вузе ты не понимаешь зачем это нужно, потому что не обьясняют на примерах из рабочей практики программиста (ее у преподавателей нету)
@Kiporino
2 жыл бұрын
FP32 (float) performance 3.935 TFLOPS. Это мощность моей 1060 3gb значит она может сделать 4 триллиона операций FP32.
@sherbachovny
2 жыл бұрын
Одно не понял - почему 10?
@mikhailshirokov8464
Жыл бұрын
Именно поэтому для хранения денежных единиц никогда не используют числа с плавающей точкой
@ВладимирГаврилюк-м7х
Жыл бұрын
Блин, а в wiki в статье про Single-precision floating-point format основание показательной функции не 10, а 2... чет я не догоняю. Простите если тупость вопроса зашкаливает...
@MichaelKondrashin
2 жыл бұрын
Спасибо за шикарные видео. Хотелось бы немного подправить: kzitem.info/news/bejne/tmaLnniasWaFmno вообще не понял этого пассажа. Сопроцессор работает также, как и встроенные команды арифметики с плавающей запятой. Когда инструкцию выполняет 486 и выше, он сам выполняет операцию. На 386 и ниже срабатывает прерывание, по которому операция вычисления выполняется уже в сопроцессоре. В обоих случаях машинный код один и тот же.
@koanvic
2 ай бұрын
в компухтере как правило в качестве основания используется 2 (10 в двоичной) НООО!!!! для работы с деньгами лучше использовать специальный формат - там как раз используется 10 в десятичной в качестве основания... я такое слышал... есть ли какой нибудь комментарий по этому поводу?
@gunnargunaxe
2 жыл бұрын
До того как я узнал, про стандарт числа с плавающей точкой, я думал что целая часть и дробная часть просто лежат по разным ячейкам в памяти, просто расположенным рядом😅 В микроконтроллерах, я так понял, часто вообще нет поддержки чисел с плавающей точкой, и используются множители представляя число как обычный int.
@c4llv07e
2 ай бұрын
>>12:00 Да почему десять-то? Тут надо либо уточнять, что под "десятью" вы подразумеваете 2 в двоичной, либо не называть это десятью, ибо это конкретное десятичное число, которое больше 9-и и меньше 11-и. Это "один ноль", "два", "два в двоичной", но никак не десять.
@Иван-у7л7н
2 ай бұрын
Я не понял. Почему дробь нельзя записывать просто как целое число. Храня в памяти, где должна быть точка.
@ggwpyalivayou
Жыл бұрын
Кто нибудь можете глупому человеку объяснить как записывать все таки степень не понимаю 9:52
@xvostiki97
Жыл бұрын
Почему второй бит не используется для хранения знака? Зачем эти пляски с серединой?
@winter-lb7id
4 ай бұрын
Откуда столько положительных комментариев? Вы вообще все сумасшедшие ? Он же ничего не объясняет, а кидается терминами в экран... 8:51 - вывалил 1.0111 х 10 -1 на экран и сидит довольный дальше говорит...
@winter-lb7id
3 ай бұрын
@@IbnSabilAbuAbdullah жалко что когда заголовок подразумевает объяснение, это видео предназначено для уже понимающих. Как то тупо
@SalatikInMyHead
3 ай бұрын
Правильный ответ 👉НАКРУТКА (+ дети)
@kvidon1357
2 ай бұрын
чел, этот ролик относиться к серии сроликов о том, как работает компьютер. Он не обязан каждый ролик рассказывать все то, что рассказывал ранее. Если что-то непонятно, дуй изучать базу. Тем более, что в этом ролике все довольно просто. Ты бы еще к книжкам и статьям прикопался научным, что непонятно написано...
@winter-lb7id
2 ай бұрын
@@kvidon1357 если тебе это преподы объясняли в вузе 6 лет, то у меня нет такой возможности, я иду на ютуб и смотрю все ролики подряд пока не пойму. А тут всем все понятно видимо))) кидается формулами и норм всем, пишут, благодарят)
@id-4
Жыл бұрын
Все проблемы из-за какого-то умника, который когда-то давно использовал большой палец (помимо четырёх других) для счёта
@AlikhanZ-p8p
2 жыл бұрын
Ладно, теперь как это всё понять личинке Джуна в программировании Python, и нужно ли это вообще ? И зачем я начал это гуглить ...
@ivanklutru
2 жыл бұрын
Для меня флоаты это очередное разочарование от несовершенства компьютерных технологий. О каких идеалах программирования можно говорить, если базовые операции в вычислительной техники "закостылили".
@dasheriko3548
2 жыл бұрын
Хотелось бы услышать про формат Decimal, который используется в финансах где решена проблема округления.
@ЕвгенийБеликов-ь5и
2 жыл бұрын
Всегда знал, что Доли и Проценты ЗЛО - даже компьютер с ними плохо справляется
@usero2915
2 жыл бұрын
Материал интересный, но вот "музыка" отвратительная - за две минуты все мозги процыкала. А субтитры только автоматические.
@maxscripten_ua9236
2 жыл бұрын
Продавщица дала мне здачу только до плавающей точки...
@kasdo6649
5 ай бұрын
Почему здесь 10 в степени 10 играет роль 10-ти в степени 2?
@ПлюшевыйМишка-ъ8в
2 жыл бұрын
Я все еще не могу понять почему это работает так по дибильному не на чайниках и умных розетках, а на современных компах, почему не выделить 1 бит скажем для знака числа, 2-12 бит для числа до точки, 12-32 бит для числа после точки и вычислять это число, да из-за этого при операциях с такими числами появиться дополнительная операция коррекции(смещения) для второй части зато точность не страдает.
@alexeysubbota
9 ай бұрын
Если мы говорим о двоичном предоставлении дробного числа, то мантисса должна быть как 2^e, а не как 10^e. И перенос точки меняет число не в 10 раз, а в два.
@ВоваОмский-х4м
Жыл бұрын
Скажите, почему стандарт не использовал в битах степени дополнительный или обратный код, а прибегнул к смещению? Ведь по итогу они получили то же самое, что и в обратном/дополнительном коде: потеряли один бит от объёма информации, который они могли записать в степень. Зато теперь процессору нужно постоянно прибегать к операции вычисления смещения, не проще было бы выделить второй бит под знак у степени?
@Kiporino
2 жыл бұрын
Ладно это всё весело, но в играх где это используеться, чё то я не видео шейдеров с плавающей точкой, а текстурки тоже не причём, может ии NPC, ну тоже нет.
@usero2915
2 жыл бұрын
Я правильно понимаю, что мантисса числа, когда целая часть всегда равна единице имеет двоичную запись, а 10 в какой-то степени записаны десятичной записью? Неужто не придумали способов обозначать какое число в какой системе записано?!
@hlibprishchepov322
2 жыл бұрын
Немножко сложновато объяснил эту тему. Если бы ты объяснил почему формулы в ролике работают, то видео было бы на порядок проще для понимания.
@1382200
Жыл бұрын
Это очень грустный ролик. Потому что проблема осталась.
@andreylarin
2 жыл бұрын
Отличные у тебя уроки. Дикция хорошая и никакой левой болтовни. Моё уважение.
@SaYeSi
8 ай бұрын
мда... говорила мне мама учись хорошо, сейчас бы не страдал когда уже за 30+ лет
@112amper
Жыл бұрын
Ээээээ, а зачем смещать точку влево, если её можно сместить вправо, и записать 5.9 как 59*10^-1 ?!
@VOVAN781000
2 жыл бұрын
Пишите на ассемблере ) Да, ассемблер долго писать, за то ооочень быстро работает, оооочень мало места занимает, оооочень мало жрёт энергии, и пофигу на подобного рода геморрой...
@Собственник-т3к
2 жыл бұрын
Круто, я думал люди которые разрабатывают компы на любые такие проблемы с хранением находили решения, а тут оно как бы есть, но как бы и неточное
@СергейГубко-б3р
2 жыл бұрын
Добрый день. Почему у вас на рисунке(1:17 минута видео) число 2.25, в двоичном виде представлено как 1 0 2 5 вроде там три числа и должно быть три двоичных значения, а у вас два. Почему так ?
@trek3456
2 жыл бұрын
Потому что мы переводили в двоичную систему не число 25, а число 0,25. 0,25*2=0,5 (записываем 0) 0,5*2=1,0 (записываем 1)
@leonidkuznetsov8797
11 ай бұрын
Очень интересно, но остались два вопроса, на которые я надеялся получить ответы: 1. Как выполнять операции с числами с плавающей точкой? 2. Как записать 0 в этом формате?
@Alex_Suvorov
9 ай бұрын
на второй вопрос ответ скорее всего следующий, нулевой порядок совместно с нулевой мантиссой представляет собой 0
@Alex_Suvorov
9 ай бұрын
то есть 0или1 0000...00000, первый бит знака по сути не важен
@vladimirnechiporyuk2948
2 жыл бұрын
Уже посмотрел несколько видео этого канала. Пересмотрев не мало других роликов скажу, что здесь самые понятные объяснения. Очень крутой канал, благодарю!
А почему нельзя было дробную часть записать точно так же как и целую? Обрезать до максимально возможного количества символов и перевести в двоичный вид.
@id13Hacker
2 жыл бұрын
А вы попробуйте с такими числами произвести математические операции. Проблема была не в том как сохранить, само число можно представить с любой точностью, даже как целое с указанием смещения запятой. Проблема в работе с такими числами. Для того что бы сложить два числа надо привести их к общему виду, и быстрее изначально хранить числа в общей, единой форме что бы в последствии не тратить время на преобразования. Стандарту лет 30, тогда скорость процессора была на столько мала, что даже удвоение тактов необходимых для сложения двух чисел было критичным.
@angryloris
2 жыл бұрын
@@id13Hacker ну а сейчас для меня критична точность расчетов. И нет ни одного типа float, который мне обеспечивает нужную точность. 2 такта на 112 поточном процессоре это ни о чем. Даже не смотря на то что у меня проходят десятки тысяч просчетов в секунду
@id13Hacker
2 жыл бұрын
@@angryloris Какая разница сколько потоков, если это базовые операции? Нельзя же математическую операцию сложения распихать в несколько потоков. Если же тебе необходимо что то сверх точности, создай свою структуру, в чём проблема? Опять же, некоторые языки программирования позволяют создать и свои типы данных. Делаешь необходимую структуру со своим представлением и форматом и обработчик этой структуры, который будет производить операции.
@angryloris
2 жыл бұрын
@@id13Hacker про потоки я написал к тому, что мне не критично количество тактов, затрачиваемых на посещение в память и обратно. Структуру я то сделаю, а что делать с функциями, которые работают с float. По типу перевода в строку, из строки, Trunc и прочие. Они написаны на ассемблере не мной, максимально ускорены. Всё придется переделывать под новую структуру. А это уже не моих способностей задачи.
@ФильмоФил
Жыл бұрын
почему мы берём 10 в степени а не 2, мы же должны брать основание системы счисления?
@АлександрХ-и7х
2 жыл бұрын
сначала первую половину видоса всё было понятно, а потом вообще затуп и не понятно. надо как-то переварить.
@Setarhable
2 жыл бұрын
Я наверное тупой, но как тогда работает обычный калькулятор?)
@I-find-John-Titor
2 жыл бұрын
Как называется мелодия которая играет в ваших видео?
@EdwardNorthwind
2 жыл бұрын
Странно, что просто не решили хранить целую часть со знаком числа и дробную часть - как пару long. Ну или просто записывать дробную часть, как целое число просто подставлять точку.
@SOME_WORDS
2 жыл бұрын
Пришел к подобному выводу при просмотре
@EdwardNorthwind
2 жыл бұрын
@@SOME_WORDS уже позже до меня дошло, что мало того, что такой подход будет хранить только 19 знаков после запятой, так еще и будет вдвое тяжелее double, который может хранить 1.7*10^308, что в разы больше.
@МаксимТимошенко-у4у
Жыл бұрын
ну вообще проблема именно в компьютере. точнее в том, как он хранит числа
@user-io9iq2di4w
Жыл бұрын
Видео супер, но степень 10 в двоичном виде на долго ввела в ступор
@МаксимМеснянкин-л6и
2 жыл бұрын
У меня одного IEEE ассоциируется с ЗППП?
@gimeron-db
2 жыл бұрын
С вещественными работать сложнее всего. Особенно, когда представляются и хранятся числа в разных системах счисления. 0.5 + 0.2 в двоичной системе считается также с ошибками, как 1/3 + 1/3 в десятичной.
@CatEggsMouth
3 жыл бұрын
Это самое понятное из непонятного по плавающей точки что я видел
Пікірлер: 406