Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Storing a number of power of 2 into INT field
Message
De
09/06/2017 16:03:59
 
 
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Autre
Divers
Thread ID:
01651872
Message ID:
01651883
Vues:
51
>>>>>If I store a number of power of 2 into INT field, how many different "values" will this field hold? I am not sure I phrase my question correctly, so here is an example of what I am trying to say.
>>>>>Say I store 128 into a INT field. Which means that I can get 7 numbers: 2, 4, 8, 16, 32, 64, 128
>>>>>Since an INT field can hold up to 2,147,483,647, what is the max number can I get from this value?
>>>>
>>>>The maximum value in regards to that calculation would be 1,073,741,824. That would be 2^30. If you go higher, you will be one number over the maximum. I would suggest to switch the field to Big Integer if you have some concerns.
>>>
>>>This is about 1 billion. For what I am trying to do, this is more than enough. Thank you.
>>
>>
>>Still somewhat puzzled by your question ;-)
>>
>>One possible use for a int in power2 is in "combination mode" as array of bit fields most of us remember.
>>Yes, you can easily squeeze 30 flags into an INT, but why ? SQL server has the bit data type and will pack on byte sizes depending on the number of flag[s / columns] you need. Say you need 15 flags, SQL Server will only reserve 2 bytes. Small benefit size ways but NO DANGER if suddelny you need 33 flags....
>>
>>OTOH, if there the max value which is important after differing # of iterations, I'd save the exponents and work directly with them, perhaps with dedicated functions or SPs.
>>
>>Indexing on such fields probably problematic IAC. What am I missing ?
>>
>>Friday curios
>>
>>thomas
>
>I don't understand how the bit data type can serve me in this case (and this is just me). Let me describe what I am considering this field (INT) for (simplified example).
>Say, the program has 5 features: Feature 1, Feature 2, Feature 3, Feature 4, Feature 5. Each record is using none, or any number of features. So I will store in the INT field (in pseudo code) the following value:
>
>REPLACE MyFeatureField with iif( UsingFeature1, 1, 0) + iif( UsingFeature2, 2, 0) + iif( UsingFeature3, 4, 0) + ;
>  iif( UsingFeature4, 8, 0) + iif( UsingFeature5, 16, 0) 
>
>Then the code (using syntax " MyFeatureField & > 1 ") can check if the record is "flagged" for Feature1 or 2 or whatever. The number of "Features" is very large; hence I was asking the question.
>How would I apply your suggestion of a BIT type?

Google hint:
sql server bit field type
Each Usingfeature? would be a separate bit column

AFAIR before vfp9 Bit is the easiest field to map to vfp logical in cusor/view Remote Connections, but used vfp8 only a short time.
Portability to other backends is not really something you strive for, otherwise I'd either use smallest int with 1/0 logic (or empty() if you prefer) or the power trick you already use.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform