Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "пошарпану";
Поточний архів: 2004.12.12;
Завантажити: [xml.tar.bz2];

Вниз

Підкажіть будь ласка. чи правильно я роблю? Знайти схожі гілки


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

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

function IntIPToIPValue (const IntIP: Integer): Cardinal;
починати
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

було
i: Integer;
n: Cardinal;
починати
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.57 MB
Час: 0.063 c
1-1101887144
Термін
2004-12-01 10:45
2004.12.12
При пересиланні даних через модем, файли більше мегабайта Перес


14-1100996643
М'який
2004-11-21 03:24
2004.12.12
Open Source приречений?


14-1100857607
dr Tr0jan
2004-11-19 12:46
2004.12.12
Біллі отримує 4 мільйона листів спаму щодня.


1-1101835736
кактус
2004-11-30 20:28
2004.12.12
Динамічна обраьотка подій.


14-1100852166
msguns
2004-11-19 11:16
2004.12.12
"Пошарпаний ліщина"





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська