Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Is this possible? Brute force conversion
#1
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.
Reply
#2
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:
Reply
#3
Quote:edit: wee, 420 posts..
grats.
Reply
#4
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.
Reply
#5
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:
Reply
#6
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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)