Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как представить число в виде трех float чисел.


Страницы:   1 2

@!!ex ©   (2009-07-06 10:24:00) 

Есть некоторое число N в пределах от 0 до 8388608.
Есть три float f1,f2,f3 разрядность у них 8 бит.

Нужно как-то сохранить число N в этих трех числах.

Вроде простая задча только у меня не получается...

f1 := round(N/32768.0)/256.0;
f2 := round((N-f1*32768.0)/128.0)/256.0;
f3 := (N-f1*32768.0-f2*128.0)/256.0;

Получается бред.

P.S.
Битовых операций нет. f1,f2,f3 могут принимать значение от 0 до 1.


Anatoly Podgoretsky   (2009-07-06 15:54:00) [1]

Так у нас не обсуждают, с нападками на участников.


@!!ex   (2009-07-06 15:11:00) [2]

Вот решение.

В одну сторону
N:=N/256*2;
f3:=frac(N);
z:=round(N)/256;
f2:=frac(N);
f1:=round(N)/256;

В другую
N:=(f1*256*256*256+f2*256*256+f3*256)/2;

40 постов разговоров ни о чем. Такое ощущение, что здесь реально народ собирается чисто поговорить ни о чем.


sniknik   (2009-07-06 12:58:00) [3]

> Нужно N однобитных float
смешно. но только вносит путаницу... (а вдруг кто поверит в существование однобитного float-а? а тут судя по всему вера в чудеса очень сильна...)


sniknik   (2009-07-06 12:55:00) [4]

> Я раза три повторил что НЕТ никакого второго числа.
@!!ex ©   (06.07.09 10:24)

> Есть некоторое число N в пределах от 0 до 8388608.
число номер раз.

> Есть три float f1,f2,f3 разрядность у них 8 бит.
> f1,f2,f3 могут принимать значение от 0 до 1.
число номер 2.

разбито на 3, это просто чтобы запутать, упрощая можно взять только одно f со значением от0 до1 (т.е. 0.0001, 0.0002 и т.д.), и пытатся сохранить в него третью часть от N (часть в битах, т.к. разговор о вместимости а не порядках), т.е. значение 255.

ну во всяком случае именно так я понял фразу
> Нужно как-то сохранить число N в этих трех числах.

если это не так, попытайся еще раз. трех раз НЕТ видимо мало.


Anatoly Podgoretsky   (2009-07-06 12:51:00) [5]

> sniknik  (06.07.2009 12:41:31)  [31]

Нужно N однобитных float


@!!ex   (2009-07-06 12:46:00) [6]

> [31] sniknik ©   (06.07.09 12:41)

Я раза три повторил что НЕТ никакого второго числа.


sniknik   (2009-07-06 12:41:00) [7]

> а где второе число?
вернее - где математическое решение позволяющее там держать второе число?


sniknik   (2009-07-06 12:39:00) [8]

> если бит равен 0, то число 0, если 1 - то число 1. В чем проблема?
а где второе число?
твоя проблема. это же тебе нужно в месде для одного числа держать 2.

> Да мне плевать на техническое представление. это МАТЕМАТИЧЕСКАЯ задача, а не техническая.
тогда зачем приводишь технические ограничения? давай тогда примем, что f1,f2,f3 это флоат с разрядностью в 16 бит, и  значением только в 0 или1. (а не от 0 до 1)?
и легко решим ее математически...


Leonid Troyanovsky   (2009-07-06 12:37:00) [9]


> @!!ex ©   (06.07.09 12:33) [28]

> Да мне плевать на техническое представление. это МАТЕМАТИЧЕСКАЯ

У тебя туманное представление о браке, тебя кто-то обманул.

--
Regards, LVT.


@!!ex   (2009-07-06 12:33:00) [10]

> [26] amir   (06.07.09 12:22)

Да мне плеватьна техническое представление. это МАТЕМАТИЧЕСКАЯ задача, а не техническая.


> [27] sniknik ©   (06.07.09 12:24)

если бит равен 0, то число 0, если 1 - то число 1. В чем проблема?


sniknik   (2009-07-06 12:24:00) [11]

давай по другому, давай ты ответишь ->

упростим, есть 1 бит, в нем возможны (передаются) значения 0-1. предложи математический аппарат для хранения в этом бите еще значения тех же - 0-1 (не буду наглеть как ты превышая вместимость на порядки, дам только равную).

ну ???


amir   (2009-07-06 12:22:00) [12]

>@!!ex ©   (06.07.09 11:45) [15]
>Я понятия не имею как оно хранится.

@!!ex ©   (06.07.09 11:52) [17]
>Я НЕ ЗНАЮ как работает видео процессор с цветовыми каналами текстуры.

Т.е. ты не имеешь ни малейшего представления о проблемном предмете, ни в какую не желаешь это представление поиметь, на задачу решить пытаешься ?


sniknik   (2009-07-06 12:19:00) [13]

> Это просто переменные. У них НЕТ значений.
тебе говорят про место под значение, а значения приводятся для примера. отвлеченно просто про место (см. [5]) ты не понял.


Anatoly Podgoretsky   (2009-07-06 12:17:00) [14]

> @!!ex  (06.07.2009 12:11:21)  [21]

У тебя не с русским проблемма!


Anatoly Podgoretsky   (2009-07-06 12:16:00) [15]

> @!!ex  (06.07.2009 12:11:20)  [20]

Это норма для флоат, все числа в этом диапазоне + порядок


Anatoly Podgoretsky   (2009-07-06 12:14:00) [16]

> @!!ex  (06.07.2009 11:52:17)  [17]

У флоат есть в обязательном порядке, хотя бы один бит, а уж утверждение про мантису совсем смешное, число без числа.


@!!ex   (2009-07-06 12:11:00) [17]

Неужели я так плохо по русски пишу?


@!!ex   (2009-07-06 12:11:00) [18]

> [19] sniknik ©   (06.07.09 12:03)

Звиздец.....
эти числа не определены!!!!!!!!!!
Это просто переменные. У них НЕТ значений.
Но когд аих испольузем надо помнить, что они могут быть только в пределах от 0 до 1.


sniknik   (2009-07-06 12:03:00) [19]

> Забудьте вы о представлении.
> Мне математическое решение надо, не основанное на технологиях.
ага, неважно что в бутылку бочка вина не влезет, вы покажите мне как это делается. забудьте про бутылку....

> Потому что работаем всегда с дробной частью.
а оригинальное значение значит "принимает значение от 0 до 1"... отсюда следует, что биты используются полностью, т.к. возможны значения 0.5 например.
т.е. у тебя бутылка уже заполнена.


@!!ex   (2009-07-06 11:53:00) [20]

Скорее всего, кстати. Там иенно число с фиксированной точкой.
Потому что работаем всегда с дробной частью.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо