Posts: 357
Threads: 118
Joined: Oct 2004
Cast doesn't do what I want it to do. I have a single precision float that I want to store in an array of integers. They are both 32 bits so it's possible. I want a way to convert 12.3423 into an integer and then back to 12.3423.
The binary representation of 12.3423 is 01000001010001010111101000010000 (IEEE 754) which is 1,095,072,272 in integer format.
Doing int = cast(single, sing) gives me a value of 12 for int.
f you play a Microsoft CD backwards you can hear demonic voices. The scary part is that if you play it forwards it installs Windows.
Posts: 324
Threads: 12
Joined: Nov 2005
This seems to work:
dim f as single = 12.3423
dim i as integer = *cast(integer ptr, @f)
print *cast(single ptr, @i) ' prints 12.3423
edit: wee, 420 posts..
stylin:
Posts: 476
Threads: 35
Joined: May 2006
Quote:edit: wee, 420 posts..
grats.
Posts: 357
Threads: 118
Joined: Oct 2004
i may be super drunk , but that is just transfering pointers, whic works fine, i actually awnaty to store that data in the array and not fjust a pointer to it,; is ther aa way to do that>
f you play a Microsoft CD backwards you can hear demonic voices. The scary part is that if you play it forwards it installs Windows.
Posts: 324
Threads: 12
Joined: Nov 2005
It works with arrays, too:
dim f as single = 12.3423
dim array(0) as integer = { *cast(integer ptr, @f) }
print *cast(single ptr, @array(0)) ' prints 12.3423
The reinterpretation of the raw data is what you want. It seems a direct cast from single to integer converts the value - that is, it truncates the decimal; C and C++ do the same thing. Casting the pointer type - the address of the data - from float pointer to integer pointer does not convert the value, it just reinterprets the floating point raw data as something else - the value does not change.
stylin:
Posts: 7
Threads: 0
Joined: Aug 2009
Is it even possible to have a NIC Card in the back of your PC and have a crossover cable running from the back of your xbox to the back of my pc and be able to ftp into evox. Or are my IPs just messed up.