Головна сторінка
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.58 MB
Час: 0.067 c
3-1100517366
Domkrat
2004-11-15 14:16
2004.12.12
Sql


14-1101200631
Nikolay M.
2004-11-23 12:03
2004.12.12
Excel повисає при відкритті зовнішніх даних :(


1-1101817959
DIV
2004-11-30 15:32
2004.12.12
delphixnumx


3-1100435214
Олексій
2004-11-14 15:26
2004.12.12
красивий DBGrid


14-1101183994
VMcL
2004-11-23 07:26
2004.12.12
Tech. support





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