Information générale
Catégorie:
Codage, syntaxe et commandes
>>I am trying to use the bitlshift command to shift bits from a hexidecimal representation.
>>
>>The following gives me what I expect
>>
>>hexval = 0x00F00000
>>newhexval = bitlshift(hexval,4)
>>newhexval = transform(newhexval,"@0")
>>
>>now newhexval = 0x0F000000
>>
>>however this does not work
>>
>>hexval = 0x0F000000
>>newhexval = bitlshift(hexval,4)
>>newhexval = transform(newhexval,"@0")
>>
>>I expected newhexval to be 0xF0000000 but it ends up being a negative number. Is there something I am missing or not understanding?
>>
>>Thanks.
>Hi David,
>
>There's nothing you're missing. What's happened is that the most significant bit represents the sign. When it's set as would be the case with any hex value of 0x80000000 up, VFP will interpret it as negative.
Thanks for the reply George. What I don't understand is why
evaluate("0xF0000000")
returns 4026531840 which is a positive number and
transform(4026531840,"@0")
returns "0xF0000000".
Précédent
Suivant
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement