.
[ Voor 99% gewijzigd door Verwijderd op 31-10-2023 22:43 ]
[ Voor 40% gewijzigd door Sjaaky op 27-09-2004 22:58 ]
Even ter verificatie, ik heb dit net uitgeprobeerd en dit werkt inderdaad. Ik heb dit met VBA getest, waar het probleem van de TS ook optreedt.klinz schreef op 27 september 2004 @ 22:50:
De oorzaak van dit probleem ligt in het feit dat VB blijkbaar probeert om de waarden in een ander datatype te passen. &ff00 past immers ook in een shortint.
Je kunt dit oplossen door de waarden te 'casten' met een & erachter.
&H112233& and &H00FF00&
Dit levert wel de juiste waarde op.
Verwijderd
Dit is dan ook geen bug, maar gewoon goed en duidelijk gedocumenteerd. Ik vind het niet eens zo raar. Verder vind ik het een goede gewoonte altijd alles expliciet te casten naar wat je wil hebben. Wen er maar vast aan, want iedere nieuwe generatie talen dwingt het steeds meer afVerwijderd schreef op 30 september 2004 @ 10:49:
MS ziet dit niet als bug, zo klein mogelijk casten heet een "memory saving feature".
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Ik heb het idee dat VB.NET anders automatisch juist zo groot mogelijk cast. In VB.NET werkt de vergelijking ook gewoon. Volgens mij wordt er standaard Long, Double, etc. gekozen.RobIII schreef op 01 oktober 2004 @ 02:10:
[...]
Dit is dan ook geen bug, maar gewoon goed en duidelijk gedocumenteerd. Ik vind het niet eens zo raar. Verder vind ik het een goede gewoonte altijd alles expliciet te casten naar wat je wil hebben. Wen er maar vast aan, want iedere nieuwe generatie talen dwingt het steeds meer af
30Drie Web Design & IT Consultancy | Raven Consultancy Services
Niet dat ik VB of iets dergelijks ken, maar wel C/C++, SuperMongo (plotting package) en IDL. Vooral in de laatste is het extreem belangrijk hoe je je getal (lees: constante) definieert. Als ik daar bijvoorbeeld doe:Verwijderd schreef op 05 oktober 2004 @ 12:55:
Wat mij betreft 100% een vette bug!
1
2
3
| a=1.5 b=1.5d c=a+b |
Used to be Down Under... Foto gallery
Nee, CLng zet het getal om in two's complement, iets wat jij hier niet wil, jij wil puur het bitmask dat je geeft.Verwijderd schreef op 05 oktober 2004 @ 12:55:
Met het '&' teken er achter werkt het inderdaad. Maar met CLng() werkt het niet. Daarmee zou het toch ook moeten werken?
Wat mij betreft 100% een vette bug!
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.