# Qbasicnews.com

Full Version: Is this possible? Brute force conversion
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
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.
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..
Quote:edit: wee, 420 posts..
grats.
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>
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.
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.