Tema: Re: VBScript: Overflow. kur klaida?
Autorius: Tomis
Data: 2010-10-18 10:53:59
Tai taip atrodo cia problemeles su zenklu. vos tik Status vyriausias  
bitukas (tas kuris zenkla rodo) = 1 tuoj erroras
Kai Status=&H8xxxxxxx :
HEX(SmartTags("Status")) ->Overflow
SmartTags("Status") AND &H7FFFFFFF ->Overflow
ABS(SmartTags("Status")) ->Overflow

Kol kas situacija issispredziau formuodamas Status dworda.


> Tomis rašė:
>> Nugi parasiau.
>>
>> tarkim turim kintamojo reiksme 0xEE882244
>> man reikia istraukti vyriausius baitus:
>> var1 = 0xEE
>> var2 = 0x88
>>
>> O dalyba.... neradau kito budo kaip vbscripte tuos baitus istraukt
>
> Na, teisingai, dalyba reikalinga; kažkaip man švietė, kad VBS turi shift  
> operatorių...
> Yra net'e tų gatavų funkcijų ((L|R)Shift ir pan.), tačiau jos kiek  
> painios, nes derinasi prie neigiamų skaičių, koks yra ir šis pavyzdys  
> (klaida, beje, kaip tik tos pačios, signed long overflow, padermės)
>
> Neitin optimalu, bet tiesmukiška, paprasta:
>
> Function ToByte(lVal)
>      ToByte = CByte("&H" & Left(Hex(lVal), 2))
> End Function
>
>
> SmartTags("LevelMin") = ToByte( And &hFF000000)
> SmartTags("LevelMax") = ToByte(SmartTags("Status") And &hFF0000)


-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/