Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Вниз

Подскажите пожалуйста. правильно ли я делаю?   Найти похожие ветки 

 
Ilya___   (2004-11-19 12:03) [0]

Подскажите пожалуйста. правильно ли я делаю?
Мне нужно из целочисленного со знаком (Integer) получить
(Целочисленное без знака). Я написал такую функцию.

function IntIPToIPValue(const IntIP: Integer): Cardinal;
begin
 Result := Low(Result) + IntIP;
end;

Правильно ли я делаю, или есть для этого какаято другая функция ?


 
Anatoly Podgoretsky ©   (2004-11-19 12:11) [1]

ABS


 
DiamondShark ©   (2004-11-19 12:25) [2]


> Result := Low(Result) + IntIP;

Что в переводе на русский означает
Result := 0 + IntIP;

;-)

Правильно, конечно, но проще
X := Y;
где X: Cardinal, а Y: Integer.


 
Ilya___   (2004-11-19 12:28) [3]

Нет мне нужно для IP адреса из
-1073732954
должен получиться такой
3221234342


 
Anatoly Podgoretsky ©   (2004-11-19 12:30) [4]

DiamondShark ©   (19.11.04 12:25) [2]
Не так, а так Result := неизвестно что + IntIP;


 
DiamondShark ©   (2004-11-19 12:34) [5]


> Ilya___   (19.11.04 12:28) [3]
> Нет мне нужно для IP адреса из
> -1073732954
> должен получиться такой
> 3221234342

var
i: Integer;
n: Cardinal;
begin
i := -1073732954;
n := Cardinal(i);


> Anatoly Podgoretsky ©   (19.11.04 12:30) [4]

Всё-таки, ноль.


 
Ilya___   (2004-11-19 12:42) [6]

И ещё хотел спросить.

Я получаю из IP адреса например 192.0.34.166
целочисленное со знаком -1073732954, используя
для этого свою функцию.
А может для этого нужно использовать inet_addr("192.0.34.166")?
Но тогда получается другой результат.


 
DiamondShark ©   (2004-11-19 14:05) [7]


> А может для этого нужно использовать inet_addr("192.0.34.166")?
> Но тогда получается другой результат.

А справку Пушкин должен читать.

All Internet addresses are returned in IP"s network order (bytes ordered from left to right).


 
Anatoly Podgoretsky ©   (2004-11-19 14:31) [8]

DiamondShark ©   (19.11.04 12:34) [5]
Вообще то да, необратил внимание на Low, тогда естественен вопрос зачем прибавлять ноль, почему бы не написать 0+0+0+IP


 
Megabyte-ceercop ©   (2004-11-19 15:01) [9]

Проблемы тут с интерпритацией старшего (знакового) бита.
Замени тип переменной IntIP из integer в dWord. тогда у тя всё само собой уложится правильно.

Или создай временную переменную dWord.

var
T : dWord;

begin
...
T := IntIP //тут в T окажется нужное тебе значение.



Не проверял, но теория такая.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.036 c
1-1101452426
sergg
2004-11-26 10:00
2004.12.12
Надпись на BitBtn в две строки


1-1101574669
tf_kiev
2004-11-27 19:57
2004.12.12
Не создается динамически компонент в форме


1-1101876703
zunder
2004-12-01 07:51
2004.12.12
plug-in


4-1099042237
WaS
2004-10-29 13:30
2004.12.12
Сымитировать нажатие клавиши F2 не посредством key_event


14-1101037120
Новичек
2004-11-21 14:38
2004.12.12
Посмейтесь, Мастера :-)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский