|
2 / 2 / 0
Регистрация: 07.04.2016
Сообщений: 298
|
|
Подскажите, где ошибка?02.04.2021, 18:19. Показов 818. Ответов 4
Метки нет (Все метки)
ииии встречайте! с вами снова я! уверенно пробиваю очередное донышко ))
Какое дно пробиваю? 0,1 + 0,2 != 0,3 Имеем: Я(уровень дно) самоучка, 0,1 + 0,2 != 0,3 Что хочу: 1. Сложить побитово. 2. Понять почему не равно. 3. Как обойти. Что делал: Читал статьи, что-то понял, что-то нет, все статьи из разряда "да это легко" в итоге в каком-то моменте что-то делают что им понятно но не мне, читателю. "Такие себе" объесняторы. Описание что делал сделано по картинке, которую приложил в самом внизу. 1. перевожу из десятичной системы в бинарную, далее перевожу в нормализованный вид с основанием 2 и степенью -4; 1.2. Затем получаю степень со смещением, т.к. рассматривается 64-битная система то +1023, затем полученное числа в десятичной системе перевожу в бинарную. 1.3. Записываю в разрядную сетку: в 63й бит ставлю 0 т.к. число положительное, далее заполняю степень со смещением начиная с бита 52 и до 61-го, в 62й ставлю 0 т.к. заполняю/дополняю. 1.4. Заполняю мантиссу, при этом значение 1 перед запятой никуда не ставлю т.к. она всегда есть в нормализованном виде. 2. То же самое проделываю с числом 0,2. 3. Далее побитово пытаюсь сложить: Начинаю с бита 35 и иду до бита 51, далее у меня нехват знаний: в 51м бите получается 10, ноль пишу а 1 куда девается? Пожелания: Статьи на хабре не предлагать. Вопросы: 1. Подскажите где ошибка? 2. Как обойти 0,1 + 0,2 != 0,3? (вопрос задал наперед)
1
|
|
| 02.04.2021, 18:19 | |
|
Ответы с готовыми решениями:
4
Препод говорит где - то ошибка в синтаксисе. Сам код взят из "жефри Рихтер - Создание эффективных WIN32 приложений" Пожалуйста, подскажите где ошибка! Подскажите, где может быть ошибка (структуры)? (скорее всего где-то амперсенд нужен, все вроде проверил) Подскажите ,где ошибка в php? В какой-то строке ошибка |
|
90 / 109 / 15
Регистрация: 26.01.2014
Сообщений: 710
|
|
| 02.04.2021, 19:37 | |
|
Все, что перечислил делал вручную? Заставь то же самое делать транслятор, и на каждом его шаге смотри что он сделал. Наверное можно отладчиком. Сравни с ручными преобразованиями. Не забудь рассказать здесь, что вышло. Сам с таким не сталкивался, но это занятно. Ваш Etien.
1
|
|
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
||
| 04.04.2021, 05:31 | ||
|
Palich,
IEEE-74 32-разрядное представление чисел число 0,1 находится между 0x3dcccccc и 0x3dcccccd 0x3dcccccс=0,0999999940395 Ошибка=―5,9605*10-9 0x3dcccccd=0.100000001490116119384765625 Ошибка=+1.490116119384765625*10-9 число 0,2 находится между 0x3e4ccccc и 0x3e4ccccd 0x3e4ccccc=0,199999988079071044921875 Ошибка=―1,1920928955078125*10-8 0x3e4ccccd=0.20000000298023223876953125 Ошибка=+2.98023223876953125*10-9 беру числа с наименьшей ошибкой, складываю на калькуляторе и перевожу результат в 32-разрядное представление по стандарту IEEE-74 0,100000001490116119384765625 + 0,20000000298023223876953125 = 0,300000004470348358154296875 = 0x3e99999a расхождение с числом 0,3 +4,470348358154296875*10-9 теперь беру число 0,3 и перевожу его по стандарту IEEE-74 в 32-разрядное представление 0.3=0x3e99999a=0.30000001192092895507812 5 Ошибка=+1.1920928955078125*10-8 32-разрядное представление числа 0,3 совпадает с тем, которое получили в результате сложения 0,1 + 0,2 Выводы:
0
|
||
|
2 / 2 / 0
Регистрация: 07.04.2016
Сообщений: 298
|
|
| 04.04.2021, 23:38 [ТС] | |
|
голова кипит, не могу найти толковое объяснение, я уже понял что нужно сначала выровнять порядки, но вот не могу понять: как в примере ниже получили разность 3 ? как они/она/он/оно получили 3 ?
0
|
|
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
|
| 05.04.2021, 17:39 | |
|
0,1=1.600000023841858*2-4
0,2=1.600000023841858*2-3 0,1+0,2=1,600000023841858*2-4+1,600000023841858*2-3= =1,600000023841858*2-4+3,200000047683716*2-4= =(1,600000023841858+3,200000047683716)*2-4=4,800000071525574*2-4= =1,2000000178813935*2-2=0,300000004470348375
0
|
|
| 05.04.2021, 17:39 | |
|
Помогаю со студенческими работами здесь
5
Подскажите где ошибка
Подскажите где ошибка? подскажите где ошибка Подскажите где ошибка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|