Forums WoW Modding Support Archives WoWModding Support Archives [DiscordArchive] <@160857905879449600> could you check my implementation in python?

[DiscordArchive] <@160857905879449600> could you check my implementation in python?

[DiscordArchive] <@160857905879449600> could you check my implementation in python?

rektbyfaith
Administrator
0
06-03-2018, 10:03 PM
#1
Archived author: Skarn • Posted: 2018-06-03T22:03:33.630000+00:00
Original source

<@160857905879449600> could you check my implementation in python?
rektbyfaith
06-03-2018, 10:03 PM #1

Archived author: Skarn • Posted: 2018-06-03T22:03:33.630000+00:00
Original source

<@160857905879449600> could you check my implementation in python?

rektbyfaith
Administrator
0
06-03-2018, 10:03 PM
#2
Archived author: Skarn • Posted: 2018-06-03T22:03:36.868000+00:00
Original source

I am not sure about it
rektbyfaith
06-03-2018, 10:03 PM #2

Archived author: Skarn • Posted: 2018-06-03T22:03:36.868000+00:00
Original source

I am not sure about it

rektbyfaith
Administrator
0
06-03-2018, 10:03 PM
#3
Archived author: Skarn • Posted: 2018-06-03T22:03:55.174000+00:00
Original source

```py
class fixed_point:
"""A fixed point real number, opposed to a floating point."""
def __init__(self, type_, dec_bits, int_bits):
self.type = type_
self.dec_bits = dec_bits
self.int_bits = int_bits
self.value = 0

def read(self, f):
fixed_point_val = self.type.read(f)
decimal_part = fixed_point_val & ((1 << self.dec_bits) - 1)
integral_part = (fixed_point_val >> self.dec_bits) & (1 << self.int_bits) - 1
sign = -1.0 if (fixed_point_val & (1 << (self.dec_bits + self.int_bits)) != 0) else 1.0

self.value = sign * (integral_part + decimal_part / (((1 << self.dec_bits) - 1) + 1.0))

return self

def write(self, f):
sign = 1 if self.value < 0 else 0
integral_part = int(self.value) & ((1 << self.int_bits) - 1)
decimal_part = int((self.value - int(self.value)) * (1 << self.dec_bits))
fixed_point_val = (sign << (self.int_bits + self.dec_bits)) | (integral_part << self.int_bits) | decimal_part

self.type.write(f, fixed_point_val)

return self
```
rektbyfaith
06-03-2018, 10:03 PM #3

Archived author: Skarn • Posted: 2018-06-03T22:03:55.174000+00:00
Original source

```py
class fixed_point:
"""A fixed point real number, opposed to a floating point."""
def __init__(self, type_, dec_bits, int_bits):
self.type = type_
self.dec_bits = dec_bits
self.int_bits = int_bits
self.value = 0

def read(self, f):
fixed_point_val = self.type.read(f)
decimal_part = fixed_point_val & ((1 << self.dec_bits) - 1)
integral_part = (fixed_point_val >> self.dec_bits) & (1 << self.int_bits) - 1
sign = -1.0 if (fixed_point_val & (1 << (self.dec_bits + self.int_bits)) != 0) else 1.0

self.value = sign * (integral_part + decimal_part / (((1 << self.dec_bits) - 1) + 1.0))

return self

def write(self, f):
sign = 1 if self.value < 0 else 0
integral_part = int(self.value) & ((1 << self.int_bits) - 1)
decimal_part = int((self.value - int(self.value)) * (1 << self.dec_bits))
fixed_point_val = (sign << (self.int_bits + self.dec_bits)) | (integral_part << self.int_bits) | decimal_part

self.type.write(f, fixed_point_val)

return self
```

Recently Browsing
 1 Guest(s)
Recently Browsing
 1 Guest(s)