Commit 8b1f2c84 authored by Phuengton Chummuel's avatar Phuengton Chummuel

add assignment week04

parent 713efb16
...@@ -8,14 +8,18 @@ def single_prec(v): ...@@ -8,14 +8,18 @@ def single_prec(v):
1, 8, 23 --> จำนวน bits 1, 8, 23 --> จำนวน bits
''' '''
print("IEEE single precision") print("IEEE single precision")
tmp_v = [0] * 32
tmp_v = [int(v[i]) for i in range(len(v))] tmp_v = [int(v[i]) for i in range(len(v))]
if len(v) < 32:
for i in range(32 - len(v)):
tmp_v.append(0)
sign = (-1) ** int(v[0]) sign = (-1) ** int(v[0])
s = [int(tmp_v[i]) * 2 ** (8-i) for i in range(1, len(v))] s = [int(tmp_v[i]) * 2 ** (8-i) for i in range(1, len(v))]
e = sum(s[0:8]) e = sum(s[0:8])
n = 1+sum(s[9:]) n = 1+sum(s[9:])
print(tmp_v)
return sign * 2 ** (e - 127) * n return sign * 2 ** (e - 127) * n
...@@ -27,13 +31,16 @@ def double_prec(v): # Home Work ...@@ -27,13 +31,16 @@ def double_prec(v): # Home Work
0, 1-11, 9-63 --> ตำแหน่ง bit 0, 1-11, 9-63 --> ตำแหน่ง bit
1, 11, 52 --> จำนวน bits 1, 11, 52 --> จำนวน bits
''' '''
tmp_v = [0] * 64
tmp_v = [int(v[i]) for i in range(len(v))] tmp_v = [int(v[i]) for i in range(len(v))]
if len(v) < 64:
for i in range(64 - len(v)):
tmp_v.append(0)
print("IEEE double precision") print("IEEE double precision")
sign = (-1) ** int(v[0]) sign = (-1) ** int(v[0])
s = [int(tmp_v[i]) * 2 ** (11-i) for i in range(1, len(v))] s = [int(tmp_v[i]) * 2 ** (11-i) for i in range(1, len(v))]
e = sum(s[0:11]) e = sum(s[0:11])
n = 1+sum(s[12:]) n = 1+sum(s[12:])
print(tmp_v)
return sign * 2 ** (e - 1023) * n return sign * 2 ** (e - 1023) * n
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment