integers
Blitz3D Forums/Blitz3D Programming/integers| 
 | ||
| You can convert a positive integer to a negative number? Greetings. | 
| 
 | ||
| Can you give an example of the operation you want? A positive number isn't a negative number, more or less by definition... | 
| 
 | ||
| I'm using the command TextureLodBias FASTEXT Draw3D2 and a slider, however this desilizador only use positive numbers and FASTEXT command receives positive and negative numbers, a positive value caliad degrades the image and a negative improvement, something like detail in distance. TextureLodBias GetSelectSGG(Slider%) Last edited 2012 | 
| 
 | ||
| Subtract half of the maximum range of possible values? | 
| 
 | ||
| Ok! TextureLodBias GetSelectSGG(Slider%)-128.0 The problem I have is that I need a smaller range to manipulate and not how to implement it, putting the slider in position 128, I can go up to 128 and down to -128 in the negative, and I work ranges are -1 and 1 positive. and can not find the way to do it as the default desilizador has 255 in width for the data. Last edited 2012 | 
| 
 | ||
| Use divisions. TextureLodBias( (GetSelectSGG(Slider%)-128.0) / 127.0 )This will transform the range [255 ~ 0] to [1.0 ~ -1.0]. | 
| 
 | ||
| @Kryzon Yasha Tnaks  Slider_LodBias% = AddingSGG(GUI_Graphics%,SGGSLIDER%,5,-80,"Detalle Distancia",1,45,128) ; 128 Start position Slider TextureLodBias( (GetSelectSGG(Slider_LodBias%)-128.0) / 127.0 ) Definitely there is a solution for all. Now the problem, and I think that is not such a problem, is that the image is degraded to the right of the slider, I think it should be the opposite, ie improve image when the slider is moved to the right and the move breaks down to the left, but I have this backwards. You can do something about it.? | 
| 
 | ||
| You do realise that if you want to quite literally flip the slider% variable on its head you can simply do it like this!. slider = -slider And the same statement will turn a negative number into a positive one. ;) Last edited 2012 | 
| 
 | ||
|  You do realise that if you want to quite literally flip the slider% variable on its head you can simply do it like this!....which can be expanded to: slider = -slider slider = 0 - slider Programming is all about logic. I'll always maintain that if you don't have a naturally logical mind then programming isn't for you. But that's for another topic. | 
| 
 | ||
| I had a feeling you were going to step in Dave. ;) | 
| 
 | ||
| Isn't there also some way of doing it with bit shifting?. :-/ Or am I thinking of XOR?. Last edited 2012 | 
| 
 | ||
| I notice that -255 in binary is a lot different to 255. :-/ Last edited 2012 | 
| 
 | ||
| A 32-bit signed integer can hold values from -2,147,483,648 to 2,147,483,647 but it's important to note that 2147483647 + 1 will result in -2147483648, then -2147483647, and so on. Whether it's possible to solve the original problem with bitshifting, I don't know. But even if you can, it's probably not worth the hassle and I doubt it would be any better than subtracting the original absolute value from zero. Last edited 2012 | 
| 
 | ||
| While it probably gets compiled to the same thing (not going to check), in op terms there is technically a difference between subtracting something from zero and the unary negation operator. Actually for my part I think using the operator by itself is more logical, but that may be a matter of taste. As for using bit operations... "-x" is the same as "~x + 1". Why you would want to do this given that negation is a hardware instruction anyway, I don't know, but that's how. |