tecknoize ·
Here's a neat trick to convert Floats to Int.
int = (float & float);
This works because bitwise operator works on Int and masking a number with itself is the same as doing a left bit shift of 0 (float >> 0).
That's it :P
From the original SynthMaker forum (2004–2014), with its members’ names and dates.
tecknoize ·
Here's a neat trick to convert Floats to Int.
int = (float & float);
This works because bitwise operator works on Int and masking a number with itself is the same as doing a left bit shift of 0 (float >> 0).
That's it :P
infuzion ·
That's a cool insight, but I have problems getting it to work in SM... I can't find a way to declare an integer variable in Code, & while ASM allows you to, this simply repeats back the same input, float and all: streamin i;streamout o; int t=0; movaps xmm0,i; andps xmm0,i; movaps t,xmm0; movaps xmm1,t; movaps o,xmm1;
The only efficient ways I know to make a float into an int is with Code use rndint(x), and with ASMif your target audience is SSE2 computers, you can use the cvtdq2ps cvtps2dq pair.
I do like nifty Code/ASM shortcuts though! I have a small collection myself.
tecknoize ·
Well, it's somewhat of a false int, because in fact it's a float. All I wanted was to remove the decimal part of a float, not really create a int...
stefan ·
Sorry, but I don't see how this could work. Bitwise-anding a number with itself won't change the value at all.
Got an example of this in action? I might just not "get it" 😉
tecknoize ·
Oh my god that's some HUGE misinformation from me! My bad!
Took for granted that if it works in Flash (Actionscript 3), it must works in SM. Seems like no. I guess Flash use bitwise operator with Int only. That's why it works.
Sorry!
Wrote something here? To have a post removed or your name hidden, write to [email protected].