Posted By
|
Message
|
DeadmanDines Best Article Writer
Registered 27/04/2006
Points 4758
|
15th June, 2005 at 13:58:55 -
I've got a small maths problem. It's do do with Binary Object.
Basically, it reads values as signed integers, when I wanna read them as unsigned. This is a pain. I need some way (I did it once, but can't remember how) of converting them without using conditions (so it's all done in a formula). Can anyone help? I don't want to use Immediate If Object if I can avoid it.
For those who don't know, the problem with signing is this. A byte is basically like a counter in MMF, it can hold any number between 0 and 255. The problem is that if it's signed, they tweak it a bit so it can hold numbers between -128 and 127.
That means that if you add 1 every second, you'll see the value go up by 1. But when it gets to 128, it will switch into minus figures and start going *down* - it's horrible! Eg:
0
1
2
...
126
127
-128
-127
-126
-125
...
-3
-2
-1
See what I mean?
I need to find a way of converting this horrible signed number into a normal value, otherwise Binary object is useless to me.
191 / 9999 * 7 + 191 * 7
|
Fifth Quadruped
Registered 07/05/2003
Points 5818
|
15th June, 2005 at 15:29:49 -
Yeah, I know the problem. The answer is simple:
( value + 256 ) mod 256
And you're set!
Go Moon!
|
DeadmanDines Best Article Writer
Registered 27/04/2006
Points 4758
|
15th June, 2005 at 18:40:56 -
Wow! I looked at that and thought "He's so misunderstood what I meant", but lo! It actually works!!
Thanks a million!
191 / 9999 * 7 + 191 * 7
|
|
|