Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как получить младшую часть от extended? 
V
    Опции темы
Чoо
Дата 18.12.2010, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: нет
Всего: 4




Код

var
  i:integer;
  T:array[0..63] of DWord;
begin
  for i:=0 to 63 do
      T[i] := (int(4294967296*(abs(sin(i))))); 
end;

дело в том, что sin, abs,int - возвращают число типа extended. мне же от 64бит, нужно только 32. Как это сделать?


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
Чoо
Дата 18.12.2010, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: нет
Всего: 4



во, сделал smile
Код

procedure THashmd5.get_sin_values;
var
  i:integer;
begin
  for i:=1 to 64 do
        T[i] := trunc(4294967296*abs(sin(i))); //2^32 = 4294967296;
                                             //берем только целую часть

end;  

совсем позабыл язык. 


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
Keeper89
Дата 19.12.2010, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 9
Всего: 58



Ничего себе код, всего 2 строчки, а я уже в ступоре, что он делает =)


--------------------
PM MAIL WWW   Вверх
Чoо
Дата 19.12.2010, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: нет
Всего: 4



инициализирует массив T целыми числами. Это нужно в алгоритме поулчения хэша мд5, что бы устранить всякую регулярность во входных сообщениях.
в алгоритме надо взять синус по модулю, и умножить его на 2^32 а потом от полученного взять целую часть smile

Добавлено через 3 минуты и 26 секунд
http://ru.wikipedia.org/wiki/MD5
по тому алгоритму


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
mes
Дата 5.1.2011, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(Чoо @  18.12.2010,  21:54 Найти цитируемый пост)
//2^32 = 4294967296;

константа не напрягает ? 
есть например: Not(0)  smile

Добавлено через 2 минуты и 56 секунд
Цитата(Чoо @  18.12.2010,  20:07 Найти цитируемый пост)
мне же от 64бит, нужно только 32

так дело не только в кол-ве битов, но и способе их представления...
 smile 


--------------------
PM MAIL WWW   Вверх
Чoо
Дата 5.1.2011, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: нет
Всего: 4



Цитата(mes @  5.1.2011,  13:37 Найти цитируемый пост)
константа не напрягает ? 

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


Цитата(mes @  5.1.2011,  13:37 Найти цитируемый пост)
так дело не только в кол-ве битов, но и способе их представления...

да... уже понял... я что-то думал, что extended - целочисленный тип, а оно вон как оказалось smile..

кстати класс уже сделал, как и курсовой, запостил его тут: http://forum.vingrad.ru/forum/topic-318666.html
впринципе было еще в планах перегрузить метод get_md5, что бы в качестве параметра передавать имя файла, но в задании этого не требовалась - оставил как есть smile


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
northener
Дата 6.1.2011, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 12
Всего: 20



Цитата(Чoо @  5.1.2011,  15:35 Найти цитируемый пост)
кстати класс уже сделал, как и курсовой

Упаси нас господи и "технический директор" от таких выпускников!
smile


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
mes
Дата 6.1.2011, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(Чoо @  5.1.2011,  14:35 Найти цитируемый пост)
 там как ни крути, но в любом случае придется константу влепить, только в другом виде. Так что не сильно напрягает.

так от вида много зависит.. всегда в голове держать что есть 4294967296 ? мне, например, даже полностью прочитать это число не хочется.. 
а при переходе на 64 битную, там мало того что константу вообще не запомнить, так еще и бегать по проекту, искать все старые "кляксы" для исправления..


Это сообщение отредактировал(а) mes - 6.1.2011, 11:02


--------------------
PM MAIL WWW   Вверх
mes
Дата 6.1.2011, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



ну и вообще чтоб не мудрить :
http://www.delphizone.ru/type.php?command=LongWord
http://www.delphizone.ru/function.php?command=High

Это сообщение отредактировал(а) mes - 6.1.2011, 11:03


--------------------
PM MAIL WWW   Вверх
Чoо
Дата 7.1.2011, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: нет
Всего: 4



Цитата(northener @ 6.1.2011,  06:46)
Цитата(Чoо @  5.1.2011,  15:35 Найти цитируемый пост)
кстати класс уже сделал, как и курсовой

Упаси нас господи и "технический директор" от таких выпускников!
smile

упаси нас господи и "технический директор" от таких выпускников, которые вообще ни чо не делают, кроме как покупают уже готовые курсовики/дипломники и прочее.
другими словами: через ошибки/кривость/кососость - нужно пройти. Не все ж сразу пишут так, как надо.

Добавлено через 1 минуту и 25 секунд
Цитата(mes @ 6.1.2011,  10:37)
Цитата(Чoо @  5.1.2011,  14:35 Найти цитируемый пост)
 там как ни крути, но в любом случае придется константу влепить, только в другом виде. Так что не сильно напрягает.

так от вида много зависит.. всегда в голове держать что есть 4294967296 ? мне, например, даже полностью прочитать это число не хочется.. 

...
да, вполне логично.. Исправлю это. 


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0507 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.