#(2^((2^(w-1))-1))*(2-(2^-t))
#2^256倍精度
#(2^((2^(1031-1))-1))*(2-(2^-3705346855594118253554271520278013051304639509300498049262642688253220148476920))
from decimal import *
getcontext().prec = 1000
from decimal import localcontext
with localcontext() as ctx:
print(ctx.Emax) # デフォルトの指数上限は999999なので、今回の計算だと足りない
ctx.Emax = 10**10**5 # 指数上限を増やす
#指数部
w = 1031
#仮数部
t = 3705346855594118253554271520278013051304639509300498049262642688253220148476920
a = ctx.power(2,(w - 1))
b = ctx.power(2,(a - 1))
print(b)
c = t * -1
d = ctx.power(2,c)
print(d)
e = (b * 2 - b * d)
#最大値
print("最大値")
print(e)
#必要に応じて有効桁を調整する
format_str = "{:.1e}".format(e)
print(format_str)
f = e.log10()
h = ctx.power(2,t)
i = h.log10()
#有効桁数
print("有効桁数")
print(i.quantize(Decimal('0'), rounding=ROUND_FLOOR))
IygyXigoMl4ody0xKSktMSkpKigyLSgyXi10KSkKIzJeMjU25YCN57K+5bqmCiMoMl4oKDJeKDEwMzEtMSkpLTEpKSooMi0oMl4tMzcwNTM0Njg1NTU5NDExODI1MzU1NDI3MTUyMDI3ODAxMzA1MTMwNDYzOTUwOTMwMDQ5ODA0OTI2MjY0MjY4ODI1MzIyMDE0ODQ3NjkyMCkpCmZyb20gZGVjaW1hbCBpbXBvcnQgKgpnZXRjb250ZXh0KCkucHJlYyA9IDEwMDAKZnJvbSBkZWNpbWFsIGltcG9ydCBsb2NhbGNvbnRleHQKd2l0aCBsb2NhbGNvbnRleHQoKSBhcyBjdHg6CiAgICBwcmludChjdHguRW1heCkgIyDjg4fjg5Xjgqnjg6vjg4jjga7mjIfmlbDkuIrpmZDjga85OTk5OTnjgarjga7jgafjgIHku4rlm57jga7oqIjnrpfjgaDjgajotrPjgorjgarjgYQKICAgIGN0eC5FbWF4ID0gMTAqKjEwKio1ICMg5oyH5pWw5LiK6ZmQ44KS5aKX44KE44GZCiAgICAj5oyH5pWw6YOoCiAgICB3ID0gMTAzMQogICAgI+S7ruaVsOmDqAogICAgdCA9IDM3MDUzNDY4NTU1OTQxMTgyNTM1NTQyNzE1MjAyNzgwMTMwNTEzMDQ2Mzk1MDkzMDA0OTgwNDkyNjI2NDI2ODgyNTMyMjAxNDg0NzY5MjAKICAgIGEgPSBjdHgucG93ZXIoMiwodyAtIDEpKQogICAgYiA9IGN0eC5wb3dlcigyLChhIC0gMSkpCiAgICBwcmludChiKQogICAgYyA9IHQgKiAtMQogICAgZCA9IGN0eC5wb3dlcigyLGMpCiAgICBwcmludChkKQogICAgZSA9IChiICogMiAtIGIgKiBkKQogICAgI+acgOWkp+WApAogICAgcHJpbnQoIuacgOWkp+WApCIpCiAgICBwcmludChlKQogICAgI+W/heimgeOBq+W/nOOBmOOBpuacieWKueahgeOCkuiqv+aVtOOBmeOCiwogICAgZm9ybWF0X3N0ciA9ICJ7Oi4xZX0iLmZvcm1hdChlKQogICAgcHJpbnQoZm9ybWF0X3N0cikKICAgIGYgPSBlLmxvZzEwKCkKICAgIGggPSBjdHgucG93ZXIoMix0KQogICAgaSA9IGgubG9nMTAoKQogICAgI+acieWKueahgeaVsAogICAgcHJpbnQoIuacieWKueahgeaVsCIpCiAgICBwcmludChpLnF1YW50aXplKERlY2ltYWwoJzAnKSwgcm91bmRpbmc9Uk9VTkRfRkxPT1IpKQogCg==