Здравствуйте, Dair, Вы писали:
D>нам то что оно float вообще не очень интересно, поэтому и nan/inf тоже. Для нас это 64 бита, которые мы как хотим так и рассматриваем:
Мы-то да, можем его рассматривать как сырую память, а вот как этот float рассматривает его библиотека, и не перекорячит ли где-то у себя внутре — это вопрос.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, Homunculus, Вы писали:
H>Слуш, вопрос не в тему. Увидел твою подпись. У тебя действительно такая необычная двойная фамилия? А почему так получилось? Если я конечно не лезу не в свое дело, просто интересно. Нисколько не хотел задеть вопросом.
У меня в самом деле такая фамилия. У отца была такая же, у деда — тоже.
Семейная легенда говорит, что при царе-горохе некая моя русская пра-пра-[...]-бабушка, имя и даты утратились, вышла замуж в Российской Империи за австрийца Шмидтгофа (Schmidt — кузнец, Hof — двор, т.е., то ли придворный кузнец, то ли попросту кузнецкий двор), который потом куда-то потратился, и тогда она вышла замуж за Лебедева, который усыновил её сына от первого брака. А поскольку тогда в Империи уже был национализм, то "чужую кровь", чтобы не терять, оставили и с исходной фамилией тоже. Насколько это правда — я , спросить уже не с кого, я теперь самый старший с такой фамилией.
Здравствуйте, ути-пути, Вы писали:
D>>нам то что оно float вообще не очень интересно, поэтому и nan/inf тоже. Для нас это 64 бита, которые мы как хотим так и рассматриваем: УП>Мы-то да, можем его рассматривать как сырую память, а вот как этот float рассматривает его библиотека, и не перекорячит ли где-то у себя внутре — это вопрос.
Да, поэтому я бы имплементацию метода floatTagToMyNumbers и myNumbersToFloatTag писал бы во время отладки (или, там, класса-конвертера), посмотрев, что происходит с тем или иным тэгом.
Здравствуйте, Dair, Вы писали:
D>Семейная легенда говорит, что при царе-горохе некая моя русская пра-пра-[...]-бабушка, имя и даты утратились, женилась в Российской Империи на австрийце Шмидтгофе (Schmidt — кузнец, Hof — двор, т.е., то ли придворный кузнец, то ли попросту кузнецкий двор), который потом куда-то потратился, и тогда она вышла замуж за Лебедева, который усыновил её сына от первого брака. А поскольку тогда в Империи уже был национализм, то "чужую кровь", чтобы не терять, оставили и с исходной фамилией тоже. Насколько это правда — я , спросить уже не с кого, я теперь самый старший с такой фамилией.
Здравствуйте, ути-пути, Вы писали:
УП>Здравствуйте, Dair, Вы писали:
D>>float это нонче 64 бита же? Ну и кодируй ими два 32-битных числа, числитель и знаменатель.
Нет. Это float64 нонче 64 бита и то в Go.
число с плавающей запятой двойной точности IEEE 754 всегда равно 64 битам. Аналогично, одинарная точность float всегда равна 32 битам.
Здравствуйте, Dair, Вы писали:
D>Да, поэтому я бы имплементацию метода floatTagToMyNumbers и myNumbersToFloatTag писал бы во время отладки (или, там, класса-конвертера), посмотрев, что происходит с тем или иным тэгом.
Это ничего не гарантирует, библиотека может раз в полнолуние менять поведение для одного единственного значения, а потом опять работать нормально, до следующего полнолуния.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, ути-пути, Вы писали:
D>>Да, поэтому я бы имплементацию метода floatTagToMyNumbers и myNumbersToFloatTag писал бы во время отладки (или, там, класса-конвертера), посмотрев, что происходит с тем или иным тэгом. УП>Это ничего не гарантирует, библиотека может раз в полнолуние менять поведение для одного единственного значения, а потом опять работать нормально, до следующего полнолуния.
Можно обойти все неудобные значения, чтобы всегда был корректный float, которому ничего не грозит от перекладывания через всякие регистры. Но тут предлагали способы гораздо проще, хоть и еще больше сужающие диапазоны возможных значений.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, Sheridan, Вы писали:
S>Запихни туда адрес объекта, содержащего нужное тебе в удобном формате. Да, надо будет подпрыгнуть в приседе чтобы из float получить адрес, добраться до объекта и так далее. Зато работать потом будет удобно.
А чтоб не зависеть от платформы, вместо адреса можно запихивать индекс в массиве. А в массив уже можно запихнуть все, что угодно, без ограничений на размер элемента.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, Homunculus, Вы писали:
H>Не знай в какую тему сунуть вопрос, поэтому сюда.
H>Мне надо в числовой тэг объекта (float) запихнуть два числа. Номер объекта в некоем массиве, но еще и каждый объект по тегу должен знать а какой он из скольки.
Неужели у тебя на столько закрытый и нерасширяемый формат, что надо так извращаться?
Конечно ты можешь этот float кастить в последовательность байт и делать с ним всё что угодно (первые два байта числитель, следующие знаменатель).
Но может можно как-то по человечески расширить формат?
А ещё можно кодировать в большие целые. Например: 13240
Жирным идёт информация о количестве знаков, далее идёт число. Округляешь до целых и декодируешь.
Здравствуйте, rg45, Вы писали:
R>Так в этом же и вопрос, собсно: как лучше упаковать два целых числа в один float. По поводу семантики у него вопросов нет, насколько я могу судить.
Во float чертовски неудобно, там мантисса, порядок, каждые со своими знаками, эти биты причудливо сочетаются и не все комбинации валидны.
Тут надо смотреть. Если доступны честные 4 байта, пусть даже они называются словом float, но никто не контролирует валидность этого float'а, то проще всего использовать их, как две группы по 16 бит. В противном случае, я бы посмотрел, какой диапазон целых чисел доступен для точного представления в виде float, и распоряжался бы ими примерно так, как Homunculus изначально предполагал.