Re[6]: 3/4 vs 0.75
От: ути-пути Россия  
Дата: 01.07.21 10:00
Оценка: +2
Здравствуйте, Dair, Вы писали:

D>нам то что оно float вообще не очень интересно, поэтому и nan/inf тоже. Для нас это 64 бита, которые мы как хотим так и рассматриваем:


Мы-то да, можем его рассматривать как сырую память, а вот как этот float рассматривает его библиотека, и не перекорячит ли где-то у себя внутре — это вопрос.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[7]: 3/4 vs 0.75
От: Dair Россия  
Дата: 01.07.21 10:01
Оценка: 6 (4)
Здравствуйте, Homunculus, Вы писали:

H>Слуш, вопрос не в тему. Увидел твою подпись. У тебя действительно такая необычная двойная фамилия? А почему так получилось? Если я конечно не лезу не в свое дело, просто интересно. Нисколько не хотел задеть вопросом.


У меня в самом деле такая фамилия. У отца была такая же, у деда — тоже.

Семейная легенда говорит, что при царе-горохе некая моя русская пра-пра-[...]-бабушка, имя и даты утратились, вышла замуж в Российской Империи за австрийца Шмидтгофа (Schmidt — кузнец, Hof — двор, т.е., то ли придворный кузнец, то ли попросту кузнецкий двор), который потом куда-то потратился, и тогда она вышла замуж за Лебедева, который усыновил её сына от первого брака. А поскольку тогда в Империи уже был национализм, то "чужую кровь", чтобы не терять, оставили и с исходной фамилией тоже. Насколько это правда — я , спросить уже не с кого, я теперь самый старший с такой фамилией.
Отредактировано 01.07.2021 10:08 Dair . Предыдущая версия .
Re[2]: 3/4 vs 0.75
От: rg45 СССР  
Дата: 01.07.21 10:02
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Это два числа, даже если они упакованы в 4 байта.


Так в этом же и вопрос, собсно: как лучше упаковать два целых числа в один float. По поводу семантики у него вопросов нет, насколько я могу судить.
--
Справедливость выше закона. А человечность выше справедливости.
Re[4]: 3/4 vs 0.75
От: Homunculus Россия  
Дата: 01.07.21 10:02
Оценка: +1
Здравствуйте, Maniacal, Вы писали:


M>отзеркалить


Так делают те, кто хотят сделать себя незаменимым в проекте и чтоб проект гикнулся после ухода того, кто так делает
Re[8]: 3/4 vs 0.75
От: Homunculus Россия  
Дата: 01.07.21 10:03
Оценка:
Здравствуйте, Dair, Вы писали:

Ух ты, супер. Спасибо, интересно.
Re[4]: 3/4 vs 0.75
От: rg45 СССР  
Дата: 01.07.21 10:05
Оценка:
Здравствуйте, Maniacal, Вы писали:


M>3.04?

M>отзеркалить

Вариант, конечно, но тут сразу же вступает в игру погрешность представления. Геморр еще тот получится. Я бы поискал варианты попроще.
--
Справедливость выше закона. А человечность выше справедливости.
Re[7]: 3/4 vs 0.75
От: Dair Россия  
Дата: 01.07.21 10:05
Оценка:
Здравствуйте, ути-пути, Вы писали:

D>>нам то что оно float вообще не очень интересно, поэтому и nan/inf тоже. Для нас это 64 бита, которые мы как хотим так и рассматриваем:

УП>Мы-то да, можем его рассматривать как сырую память, а вот как этот float рассматривает его библиотека, и не перекорячит ли где-то у себя внутре — это вопрос.

Да, поэтому я бы имплементацию метода floatTagToMyNumbers и myNumbersToFloatTag писал бы во время отладки (или, там, класса-конвертера), посмотрев, что происходит с тем или иным тэгом.
Re[8]: 3/4 vs 0.75
От: rg45 СССР  
Дата: 01.07.21 10:08
Оценка: :)
Здравствуйте, Dair, Вы писали:

D>Семейная легенда говорит, что при царе-горохе некая моя русская пра-пра-[...]-бабушка, имя и даты утратились, женилась в Российской Империи на австрийце Шмидтгофе (Schmidt — кузнец, Hof — двор, т.е., то ли придворный кузнец, то ли попросту кузнецкий двор), который потом куда-то потратился, и тогда она вышла замуж за Лебедева, который усыновил её сына от первого брака. А поскольку тогда в Империи уже был национализм, то "чужую кровь", чтобы не терять, оставили и с исходной фамилией тоже. Насколько это правда — я , спросить уже не с кого, я теперь самый старший с такой фамилией.


https://www.youtube.com/watch?v=4dM_dBBTiEI
--
Справедливость выше закона. А человечность выше справедливости.
Re[5]: 3/4 vs 0.75
От: Maniacal Россия  
Дата: 01.07.21 10:09
Оценка: 1 (1)
Здравствуйте, ути-пути, Вы писали:

УП>Здравствуйте, Dair, Вы писали:


D>>float это нонче 64 бита же? Ну и кодируй ими два 32-битных числа, числитель и знаменатель.


Нет. Это float64 нонче 64 бита и то в Go.

число с плавающей запятой двойной точности IEEE 754 всегда равно 64 битам. Аналогично, одинарная точность float всегда равна 32 битам.

Re[8]: 3/4 vs 0.75
От: ути-пути Россия  
Дата: 01.07.21 10:15
Оценка: 1 (1) +1
Здравствуйте, Dair, Вы писали:

D>Да, поэтому я бы имплементацию метода floatTagToMyNumbers и myNumbersToFloatTag писал бы во время отладки (или, там, класса-конвертера), посмотрев, что происходит с тем или иным тэгом.


Это ничего не гарантирует, библиотека может раз в полнолуние менять поведение для одного единственного значения, а потом опять работать нормально, до следующего полнолуния.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[9]: 3/4 vs 0.75
От: Dair Россия  
Дата: 01.07.21 10:41
Оценка:
Здравствуйте, ути-пути, Вы писали:

D>>Да, поэтому я бы имплементацию метода floatTagToMyNumbers и myNumbersToFloatTag писал бы во время отладки (или, там, класса-конвертера), посмотрев, что происходит с тем или иным тэгом.

УП>Это ничего не гарантирует, библиотека может раз в полнолуние менять поведение для одного единственного значения, а потом опять работать нормально, до следующего полнолуния.

Тогда кранты.
Re[2]: 3/4 vs 0.75
От: pugv Россия  
Дата: 01.07.21 10:55
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Запихни туда адрес объекта, содержащего нужное тебе в удобном формате.


А sizeof(float) == sizeof(void*) всегда?
Re[10]: 3/4 vs 0.75
От: ути-пути Россия  
Дата: 01.07.21 10:57
Оценка: +1
Здравствуйте, Dair, Вы писали:

D>Тогда кранты.


Можно обойти все неудобные значения, чтобы всегда был корректный float, которому ничего не грозит от перекладывания через всякие регистры. Но тут предлагали способы гораздо проще, хоть и еще больше сужающие диапазоны возможных значений.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[2]: 3/4 vs 0.75
От: Homunculus Россия  
Дата: 01.07.21 10:57
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Запихни туда адрес объекта, содержащего нужное тебе в удобном формате.


Ну, тэги обычно сериализуемые сущности. При реаллокации адреса накроются медным тазом.
Re[3]: 3/4 vs 0.75
От: Maniacal Россия  
Дата: 01.07.21 11:01
Оценка:
Здравствуйте, pugv, Вы писали:

P>А sizeof(float) == sizeof(void*) всегда?


Только на 32-битной архитектуре.
Re[2]: 3/4 vs 0.75
От: rg45 СССР  
Дата: 01.07.21 11:08
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Запихни туда адрес объекта, содержащего нужное тебе в удобном формате. Да, надо будет подпрыгнуть в приседе чтобы из float получить адрес, добраться до объекта и так далее. Зато работать потом будет удобно.


А чтоб не зависеть от платформы, вместо адреса можно запихивать индекс в массиве. А в массив уже можно запихнуть все, что угодно, без ограничений на размер элемента.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 01.07.2021 11:09 rg45 . Предыдущая версия .
Re[4]: 3/4 vs 0.75
От: pugv Россия  
Дата: 01.07.21 11:08
Оценка:
Здравствуйте, Maniacal, Вы писали:

M>Только на 32-битной архитектуре.


Я на это и намекал. Качественно расставленные грабли. Не говоря уже о сериализации, что тоже упомянули ниже.
Re: 3/4 vs 0.75
От: Dimonka Верблюд  
Дата: 01.07.21 11:21
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>Не знай в какую тему сунуть вопрос, поэтому сюда.


H>Мне надо в числовой тэг объекта (float) запихнуть два числа. Номер объекта в некоем массиве, но еще и каждый объект по тегу должен знать а какой он из скольки.


Неужели у тебя на столько закрытый и нерасширяемый формат, что надо так извращаться?

Конечно ты можешь этот float кастить в последовательность байт и делать с ним всё что угодно (первые два байта числитель, следующие знаменатель).
Но может можно как-то по человечески расширить формат?
Re[2]: 3/4 vs 0.75
От: Dimonka Верблюд  
Дата: 01.07.21 11:31
Оценка:
Здравствуйте, Dimonka, Вы писали:

А ещё можно кодировать в большие целые. Например:
13240
Жирным идёт информация о количестве знаков, далее идёт число. Округляешь до целых и декодируешь.
Re[3]: 3/4 vs 0.75
От: Pzz Россия https://github.com/alexpevzner
Дата: 01.07.21 11:52
Оценка:
Здравствуйте, rg45, Вы писали:

R>Так в этом же и вопрос, собсно: как лучше упаковать два целых числа в один float. По поводу семантики у него вопросов нет, насколько я могу судить.


Во float чертовски неудобно, там мантисса, порядок, каждые со своими знаками, эти биты причудливо сочетаются и не все комбинации валидны.

Тут надо смотреть. Если доступны честные 4 байта, пусть даже они называются словом float, но никто не контролирует валидность этого float'а, то проще всего использовать их, как две группы по 16 бит. В противном случае, я бы посмотрел, какой диапазон целых чисел доступен для точного представления в виде float, и распоряжался бы ими примерно так, как Homunculus изначально предполагал.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.