Post History
Python 3, 268 250 235 233 210 197 148 bytes def a(n):e=(n>>6).bit_length();f=2**e;l=n&(f-1);N=(n>>e)&31;return((e+(n>31))<<5)+N+(2*l+N%2>f) def b(r):E=r>>5...
Answer
#8: Post edited
# [Python 3], <s>268</s> <s>250</s> <s>235</s> <s>233</s> <s>210</s> 197 bytes- <!-- language-all: lang-python -->
<pre><code>def a(n):	e=0	while n>=2**e*64:e+=1	f=2**e;l=n&(f-1);N=(n>>e)&31;M=N+((2*l==f and N%2)or 2*l>f);E=e+(n>31)	if M==32:E+=1;M=0	return(E<<5)|Mdef b(r):E=r>>5;return((r&31)+32*(E>0))*2**(E-(E>0))</code></pre>[Try it online!][TIO-kuaxnrge]Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008). Golfed another 23 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4686#comment-14019). Golfed another 13 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4687#comment-14020).- [Python 3]: https://docs.python.org/3/
[TIO-kuaxnrge]: https://tio.run/##lZTbitswEIavracQgS6SkwVbPiS2V4aFulBoQmEvl6XkIBODKwcfKCXNs2d1cIId4YvmYvDk88xo5h/r9Lc9Vty7Xg8sh1vEcQwsRh1g/TkWJYM8pcS2mR36MZtTF1i58pOS8ieUP7s42VDE05ThJ89N1nQzR4jYJaUiGT/AzReCqxqKf9IcJxllc/Gy52JgFTlcU@qROBNpRaCoWLO2qznKXl4C/G8N5IF2qMZxRus0DZIeo1pUwnOP2ChLHYxtcR6UPWvnmnd83xYVbyCFZ2DNGN9XBzaL4XYhvAPrvR24AFWgZU2LbkG/@PY3i2HT1gtY8FPX9s9V194cOZ6aNV3Z0nup91H8B1KhusX@VdpnONUFF@VmP1/f3rKvMTyPIi/orKum/gXL8@to6c5EOlY27J7h2@v3H/@VYQGbY9WVB7hj8NwfRycGcgb7bcPkzN6BhW5DW0Dxc7TFi0fgamsAz9XWBERbA4SetibwtTVBMAVCjU2w1NgEqykQTYCloxM@ApeoPiLfBP4UCKaA6iMKTKD6iEITrKZANAE8ZwooBSOjQRKEutIDIA6REYQ8Kug7SnMSyD4k6b8/c7GGYLRYAzBerCEYLdYAjBdrCEaLNQTBUPQh0Iu1MkDkqZmYxSNfS2@CQCtsgtF4h2CpZDFqaNGFLAYI5XQD14ggckeJ44Ym8CXwjeJCPC0kBh8A5OIyv10X4oq8Pzexukjtm4@vnw "Python 3 – Try It Online"
- # [Python 3], <s>268</s> <s>250</s> <s>235</s> <s>233</s> <s>210</s> <s>197</s> 148 bytes
- <!-- language-all: lang-python -->
- def a(n):e=(n>>6).bit_length();f=2**e;l=n&(f-1);N=(n>>e)&31;return((e+(n>31))<<5)+N+(2*l+N%2>f)
- def b(r):E=r>>5;return((r&31)+32*(E>0))*2**(E-(E>0))
- [Try it online!][TIO-kubw77lt]
- Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008). Golfed another 23 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4686#comment-14019). Golfed another 13 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4687#comment-14020). Golfed another 49 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4693#comment-14028).
- [Python 3]: https://docs.python.org/3/
- [TIO-kubw77lt]: https://tio.run/##lZTfi5tAEMefs3/FEuixq17R9UeiOYWDplAooXCPx3Hkx9oE7Bp0fSghf3vq7mrQDD7Uh8Hx48w48x33/FceS@Hfbgee4y0RNOEpEVkW0a@7k/wsuPgtj4Su8pRZFl8VqXgi@bNHVxv9GqdPvrequGwqQQi322e@R@nLS0jtjU2YVdibLyzLKVL5d6SiyTqtsiy8x1RtAmr7zCLrzKXUasuQ9bNxbnkj9vJUihqn@IJmcy725YHPE7x1Wu/AO2@HrkgXkLyWpA/6FNs/PMG1rBx8EudGdvdlI3uHJmhW8bopZHov9T6K/yA6lKLZKcfdq2mX4VydRFtu/uv17W39LcGXUeSVXEzVLLhS9f0mWrnzNh0van7P8P31x8//yuDg@lg2xQHvOL50n2MSIzWD/bbmambvaEb6oTm4vVxjqfMIPGMB8D1jIWDGAhD5xkIQGAtBOAUigyFYGAzBcgrEE2DhmoSPwGO6jziAIJgC4RTQfcQhBLqPOIJgOQXiCeC7U0ArGIMGWRiZSg@AuUxFMPaoYOBqzVmo@lCk@//gYg3BaLEGYLxYQzBarAEYL9YQjBZrCMKh6ENgFmsJQOzrmcDicWCkhyA0CkMwGu8QLLQsoIYRvZUFgEhNN/RABFM7ylwvgiBQIADFW/GMkBR9IJSXFe6Pi/aIvN/XiT5Ird6nt38 "Python 3 – Try It Online"
#7: Post edited
# [Python 3], <s>268</s> <s>250</s> <s>235</s> <s>233</s> 210 bytes- <!-- language-all: lang-python -->
- <pre><code>def a(n):
	if n<32:return n- 	e=0
- 	while n>=2**e*64:e+=1
	f=2**e;l=n&(f-1);N=(n>>e)&31;M=N+((2*l==f and N%2)or 2*l>f);E=e+1- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
- def b(r):E=r>>5;return((r&31)+32*(E>0))*2**(E-(E>0))
- </code></pre>
[Try it online!][TIO-kuavzysk]Don't mind me always golfing your original implementations. :)Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008). Golfed another 23 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4686#comment-14019).- [Python 3]: https://docs.python.org/3/
[TIO-kuavzysk]: https://tio.run/##lZRbi@IwFMefm08RhBmS6kCbXrTVFAa2CwurLMzjMAxqUxS6qfTCsrh@dieXKq2hD9uHQ4@/nvPPuZjT3@ZQcu96zVgOt4jjGFjHHPKVR@KKNW3FIQcWow6w/hyOBYM8ocS2mR36MZtSF1i58pcF5c8of3HxckMRTxKGnz13uaabKULELigV6XkGN08ElxUUvyQ5XqaUTV0luKZUKKYio4gRYlobpatVgP@tgTzdDlU4TmmVJMGyw6gSInjqERuliYOxLY6C0hftXPOW75tjyWtI4RlYE8b3ZcYmMdzOhJexztuBC1ACDasbdAv65NvfLIZ1U83gkZ/apnsv2@bmyF5VrG6Lht6l3gfxH0iFYlVi9yntMpyqIxdyk1@vb2/ptxieB5EXdNaqiX/B8vw6WroTkY4VNbtn@P764@d/ZZjB@lC2RQZ3DJ674@jEQPZgv62Z7Nk7sNCtaTMoHkdbPHsErrYG8FxtTUC0NUDoaWsCX1sTBGMg1NgEc41NsBgD0QiYOzrhI3CJqiPyTeCPgWAMqDqiwASqjig0wWIMRCPAc8aAmmBkFEiCUCs9AOIQGUHI4wR9R82cBLIOSbr/n7lYfTBYrB4YLlYfDBarB4aL1QeDxeqDoD/0PtCLtTBA5KmemOKRr0dvgkBP2ASD9vbBXI3F0NBDF2MxQCi7G7hGBJE7Shw3NIEvgW@Ii@HpQWLwAUAu7vHbdSGuyPt7HauL1L75@PoF "Python 3 – Try It Online"
- # [Python 3], <s>268</s> <s>250</s> <s>235</s> <s>233</s> <s>210</s> 197 bytes
- <!-- language-all: lang-python -->
- <pre><code>def a(n):
- 	e=0
- 	while n>=2**e*64:e+=1
- 	f=2**e;l=n&(f-1);N=(n>>e)&31;M=N+((2*l==f and N%2)or 2*l>f);E=e+(n>31)
- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
- def b(r):E=r>>5;return((r&31)+32*(E>0))*2**(E-(E>0))
- </code></pre>
- [Try it online!][TIO-kuaxnrge]
- Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008). Golfed another 23 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4686#comment-14019). Golfed another 13 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4687#comment-14020).
- [Python 3]: https://docs.python.org/3/
- [TIO-kuaxnrge]: https://tio.run/##lZTbitswEIavracQgS6SkwVbPiS2V4aFulBoQmEvl6XkIBODKwcfKCXNs2d1cIId4YvmYvDk88xo5h/r9Lc9Vty7Xg8sh1vEcQwsRh1g/TkWJYM8pcS2mR36MZtTF1i58pOS8ieUP7s42VDE05ThJ89N1nQzR4jYJaUiGT/AzReCqxqKf9IcJxllc/Gy52JgFTlcU@qROBNpRaCoWLO2qznKXl4C/G8N5IF2qMZxRus0DZIeo1pUwnOP2ChLHYxtcR6UPWvnmnd83xYVbyCFZ2DNGN9XBzaL4XYhvAPrvR24AFWgZU2LbkG/@PY3i2HT1gtY8FPX9s9V194cOZ6aNV3Z0nup91H8B1KhusX@VdpnONUFF@VmP1/f3rKvMTyPIi/orKum/gXL8@to6c5EOlY27J7h2@v3H/@VYQGbY9WVB7hj8NwfRycGcgb7bcPkzN6BhW5DW0Dxc7TFi0fgamsAz9XWBERbA4SetibwtTVBMAVCjU2w1NgEqykQTYCloxM@ApeoPiLfBP4UCKaA6iMKTKD6iEITrKZANAE8ZwooBSOjQRKEutIDIA6REYQ8Kug7SnMSyD4k6b8/c7GGYLRYAzBerCEYLdYAjBdrCEaLNQTBUPQh0Iu1MkDkqZmYxSNfS2@CQCtsgtF4h2CpZDFqaNGFLAYI5XQD14ggckeJ44Ym8CXwjeJCPC0kBh8A5OIyv10X4oq8Pzexukjtm4@vnw "Python 3 – Try It Online"
#6: Post edited
# [Python 3], <s>268</s> <s>250</s> <s>235</s> 233 bytes- <!-- language-all: lang-python -->
- <pre><code>def a(n):
- 	if n<32:return n
- 	e=0
- 	while n>=2**e*64:e+=1
- 	f=2**e;l=n&(f-1);N=(n>>e)&31;M=N+((2*l==f and N%2)or 2*l>f);E=e+1
- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
def b(r):	E=r>>5;M=r&31	if E==0:e=0;m=M	else:e=E-1;m=M+32	return m*2**e- </code></pre>
[Try it online!][TIO-kuajx5jm]- Don't mind me always golfing your original implementations. :)
Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008).- [Python 3]: https://docs.python.org/3/
[TIO-kuajx5jm]: https://tio.run/##lZTbitswEIavracQgS6SkwVbPiR2IsNCXSg0obCXy7LkIJOAIwcfKCXNs6c62Isd4YvNxeDJ55l/RjPW5W99LLh3vx9YBreI4xhYpwzylUfiktVNySEHFqMOsP4cTzmDPKHEtpkd@jGbUhdYmfKXOeVPKHt28XJDEU8Shp88d7mmmylCxM4pFen5AW6@EVyUUPyTZHiZUjZ1leCaUqGYiowiRohpbZSuVgH@twayuh0qZXUpLZMkEG@VQkDFppQ6sShxeaZrUWteMeGlz670px7pksGzLSu9Zw3f16eCV5DCK7AmjO@LA5vEcDsT3oG13g7cgNKtWVWjLuiDb88shlVdzuCJX5q6fS6aunNkkSWrmrymn1Jvg/h3pEKxqr59lbYZLuWJC7nJ75fX1/R7DK@DyBu6atXEv2FZv46W7gS3vXcZfrz8/PWlDDNYHYsmP8Adg9e2HJ0YyDPYbysmz@wNWKg7tBkUP0dbPHsErrYG8FxtTUC0NUDoaWsCX1sTBGMg1NgEc41NsBgD0QiYOzrhI3CJ6iPyTeCPgWAMqD6iwASqjyg0wWIMRCPAc8aAmmBkNEiCUCs9AOIQGUHI4wR9R82cBLIPSdrvz1ysPhgsVg8MF6sPBovVA8PF6oPBYvVB0B96H@jFWhgg8tSZmOKRr0dvgkBP2ASD4@2DuRqLoaGHLsZigFCebuAaEUTuKHHc0AS@BL4hLoanB4nBOwCZuN6760JckZ/PVawuUrvz8f0/ "Python 3 – Try It Online"
- # [Python 3], <s>268</s> <s>250</s> <s>235</s> <s>233</s> 210 bytes
- <!-- language-all: lang-python -->
- <pre><code>def a(n):
- 	if n<32:return n
- 	e=0
- 	while n>=2**e*64:e+=1
- 	f=2**e;l=n&(f-1);N=(n>>e)&31;M=N+((2*l==f and N%2)or 2*l>f);E=e+1
- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
- def b(r):E=r>>5;return((r&31)+32*(E>0))*2**(E-(E>0))
- </code></pre>
- [Try it online!][TIO-kuavzysk]
- Don't mind me always golfing your original implementations. :)
- Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008). Golfed another 23 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4686#comment-14019).
- [Python 3]: https://docs.python.org/3/
- [TIO-kuavzysk]: https://tio.run/##lZRbi@IwFMefm08RhBmS6kCbXrTVFAa2CwurLMzjMAxqUxS6qfTCsrh@dieXKq2hD9uHQ4@/nvPPuZjT3@ZQcu96zVgOt4jjGFjHHPKVR@KKNW3FIQcWow6w/hyOBYM8ocS2mR36MZtSF1i58pcF5c8of3HxckMRTxKGnz13uaabKULELigV6XkGN08ElxUUvyQ5XqaUTV0luKZUKKYio4gRYlobpatVgP@tgTzdDlU4TmmVJMGyw6gSInjqERuliYOxLY6C0hftXPOW75tjyWtI4RlYE8b3ZcYmMdzOhJexztuBC1ACDasbdAv65NvfLIZ1U83gkZ/apnsv2@bmyF5VrG6Lht6l3gfxH0iFYlVi9yntMpyqIxdyk1@vb2/ptxieB5EXdNaqiX/B8vw6WroTkY4VNbtn@P764@d/ZZjB@lC2RQZ3DJ674@jEQPZgv62Z7Nk7sNCtaTMoHkdbPHsErrYG8FxtTUC0NUDoaWsCX1sTBGMg1NgEc41NsBgD0QiYOzrhI3CJqiPyTeCPgWAMqDqiwASqjig0wWIMRCPAc8aAmmBkFEiCUCs9AOIQGUHI4wR9R82cBLIOSbr/n7lYfTBYrB4YLlYfDBarB4aL1QeDxeqDoD/0PtCLtTBA5KmemOKRr0dvgkBP2ASD9vbBXI3F0NBDF2MxQCi7G7hGBJE7Shw3NIEvgW@Ii@HpQWLwAUAu7vHbdSGuyPt7HauL1L75@PoF "Python 3 – Try It Online"
#5: Post edited
- # [Python 3], <s>268</s> <s>250</s> <s>235</s> 233 bytes
- <!-- language-all: lang-python -->
- <pre><code>def a(n):
- 	if n<32:return n
- 	e=0
- 	while n>=2**e*64:e+=1
- 	f=2**e;l=n&(f-1);N=(n>>e)&31;M=N+((2*l==f and N%2)or 2*l>f);E=e+1
- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
- def b(r):
- 	E=r>>5;M=r&31
- 	if E==0:e=0;m=M
- 	else:e=E-1;m=M+32
- 	return m*2**e
- </code></pre>
- [Try it online!][TIO-kuajx5jm]
- Don't mind me always golfing your original implementations. :)
- Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008).
- [Python 3]: https://docs.python.org/3/
[TIO-kuajx5jm]: https://tio.run/##lZTbitswEIavracQgS6SkwVbPiR2IsNCXSg0obCXy7LkIJOAIwcfKCXNs6c62Isd4YvNxeDJ55l/RjPW5W99LLh3vx9YBreI4xhYpwzylUfiktVNySEHFqMOsP4cTzmDPKHEtpkd@jGbUhdYmfKXOeVPKHt28XJDEU8Shp88d7mmmylCxM4pFen5AW6@EVyUUPyTZHiZUjZ1leCaUqGYiowiRohpbZSuVgH@twayuh0qZXUpLZMkEG@VQkDFppQ6sShxeaZrUWteMeGlz670px7pksGzLSu9Zw3f16eCV5DCK7AmjO@LA5vEcDsT3oG13g7cAFDCNatq1EV98O2ZxbCqyxk88UtTt89FU3eOrLJkVZPX9FPrbRD/jlQoVuW3r9I2w6U8cSE3@f3y@pp@j@F1EHlDV62a@DcsG9DR0p3gtvkuw4@Xn7@@lGEGq2PR5Ae4Y/DalqMTA3kG@23F5KG9AQt1pzaD4udoi2ePwNXWAJ6rrQmItgYIPW1N4GtrgmAMhBqbYK6xCRZjIBoBc0cnfAQuUX1Evgn8MRCMAdVHFJhA9RGFJliMgWgEeM4YUBOMjAZJEGqlB0AcIiMIeZyg76iZk0D2IUn7AZqL1QeDxeqB4WL1wWCxemC4WH0wWKw@CPpD7wO9WAsDRJ46E1M88vXoTRDoCZtgcLx9MFdjMTT00MVYDBDK0w1cI4LIHSWOG5rAl8A3xMXw9CAxeAcgE/d7d12IK/LzuYrVRWp3Pr7/Bw "Python 3 – Try It Online"
- # [Python 3], <s>268</s> <s>250</s> <s>235</s> 233 bytes
- <!-- language-all: lang-python -->
- <pre><code>def a(n):
- 	if n<32:return n
- 	e=0
- 	while n>=2**e*64:e+=1
- 	f=2**e;l=n&(f-1);N=(n>>e)&31;M=N+((2*l==f and N%2)or 2*l>f);E=e+1
- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
- def b(r):
- 	E=r>>5;M=r&31
- 	if E==0:e=0;m=M
- 	else:e=E-1;m=M+32
- 	return m*2**e
- </code></pre>
- [Try it online!][TIO-kuajx5jm]
- Don't mind me always golfing your original implementations. :)
- Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008).
- [Python 3]: https://docs.python.org/3/
- [TIO-kuajx5jm]: https://tio.run/##lZTbitswEIavracQgS6SkwVbPiR2IsNCXSg0obCXy7LkIJOAIwcfKCXNs6c62Isd4YvNxeDJ55l/RjPW5W99LLh3vx9YBreI4xhYpwzylUfiktVNySEHFqMOsP4cTzmDPKHEtpkd@jGbUhdYmfKXOeVPKHt28XJDEU8Shp88d7mmmylCxM4pFen5AW6@EVyUUPyTZHiZUjZ1leCaUqGYiowiRohpbZSuVgH@twayuh0qZXUpLZMkEG@VQkDFppQ6sShxeaZrUWteMeGlz670px7pksGzLSu9Zw3f16eCV5DCK7AmjO@LA5vEcDsT3oG13g7cgNKtWVWjLuiDb88shlVdzuCJX5q6fS6aunNkkSWrmrymn1Jvg/h3pEKxqr59lbYZLuWJC7nJ75fX1/R7DK@DyBu6atXEv2FZv46W7gS3vXcZfrz8/PWlDDNYHYsmP8Adg9e2HJ0YyDPYbysmz@wNWKg7tBkUP0dbPHsErrYG8FxtTUC0NUDoaWsCX1sTBGMg1NgEc41NsBgD0QiYOzrhI3CJ6iPyTeCPgWAMqD6iwASqjyg0wWIMRCPAc8aAmmBkNEiCUCs9AOIQGUHI4wR9R82cBLIPSdrvz1ysPhgsVg8MF6sPBovVA8PF6oPBYvVB0B96H@jFWhgg8tSZmOKRr0dvgkBP2ASD4@2DuRqLoaGHLsZigFCebuAaEUTuKHHc0AS@BL4hLoanB4nBOwCZuN6760JckZ/PVawuUrvz8f0/ "Python 3 – Try It Online"
#4: Post edited
# [Python 3], <s>268</s> <s>250</s> 235 bytes- <!-- language-all: lang-python -->
- <pre><code>def a(n):
- 	if n<32:return n
- 	e=0
- 	while n>=2**e*64:e+=1
	f=2**e;l=n&(f-1);N=(n>>e)&31	M=N+((2*l==f and N%2)or 2*l>f)	E=e+1- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
- def b(r):
- 	E=r>>5;M=r&31
- 	if E==0:e=0;m=M
- 	else:e=E-1;m=M+32
- 	return m*2**e
- </code></pre>
[Try it online!][TIO-kuahuczz]- Don't mind me always golfing your original implementations. :)
- Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008).
- [Python 3]: https://docs.python.org/3/
[TIO-kuahuczz]: https://tio.run/##lZTbitswEIavracQgS6SkwVbPiR2IsNCXSg0obCXy7LkIJOAIwcfKCXNs6c62Isd4YvNxeDJ55l/RjPW5W99LLh3vx9YBreI4xhYpwzylUfiktVNySEHFqMOsP4cTzmDPKHEtpkd@jGbUhdYmfKXOeVPKHt28XJDEU8Shp88Qdd0M0WI2DmlIj8/wM03gosSin@SDAMrpWzqKsk1pUIzFTmXaymn1VG6WgX43xrI@naolPWltEySQLxVKgkRm1LqxKLI5ZmuRbV5xYSXPrvSn3qkSwbPtqz1njV8X58KXkEKr8CaML4vDmwSw@1MeAfWejtwA0AJ16yqURf1wbdnFsOqLmfwxC9N3T4XTd05ssqSVU1e00@tt0H8O1KhWJXfvkrbDJfyxIXc5PfL62v6PYbXQeQNXbVq4t@wbEBHS3eC2@a7DD9efv76UoYZrI5Fkx/gjsFrW45ODOQZ7LcVk4f2BizUndoMip@jLZ49AldbA3iutiYg2hog9LQ1ga@tCYIxEGpsgrnGJliMgWgEzB2d8BG4RPUR@Sbwx0AwBlQfUWAC1UcUmmAxBqIR4DljQE0wMhokQaiVHgBxiIwg5HGCvqNmTgLZhyTtB2guVh8MFqsHhovVB4PF6oHhYvXBYLH6IOgPvQ/0Yi0MEHnqTEzxyNejN0GgJ2yCwfH2wVyNxdDQQxdjMUAoTzdwjQgid5Q4bmgCXwLfEBfD04PE4B2ATFzw3XUhrsjP5ypWF6nd@fj@Hw "Python 3 – Try It Online"
- # [Python 3], <s>268</s> <s>250</s> <s>235</s> 233 bytes
- <!-- language-all: lang-python -->
- <pre><code>def a(n):
- 	if n<32:return n
- 	e=0
- 	while n>=2**e*64:e+=1
- 	f=2**e;l=n&(f-1);N=(n>>e)&31;M=N+((2*l==f and N%2)or 2*l>f);E=e+1
- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
- def b(r):
- 	E=r>>5;M=r&31
- 	if E==0:e=0;m=M
- 	else:e=E-1;m=M+32
- 	return m*2**e
- </code></pre>
- [Try it online!][TIO-kuajx5jm]
- Don't mind me always golfing your original implementations. :)
- Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008).
- [Python 3]: https://docs.python.org/3/
- [TIO-kuajx5jm]: https://tio.run/##lZTbitswEIavracQgS6SkwVbPiR2IsNCXSg0obCXy7LkIJOAIwcfKCXNs6c62Isd4YvNxeDJ55l/RjPW5W99LLh3vx9YBreI4xhYpwzylUfiktVNySEHFqMOsP4cTzmDPKHEtpkd@jGbUhdYmfKXOeVPKHt28XJDEU8Shp88d7mmmylCxM4pFen5AW6@EVyUUPyTZHiZUjZ1leCaUqGYiowiRohpbZSuVgH@twayuh0qZXUpLZMkEG@VQkDFppQ6sShxeaZrUWteMeGlz670px7pksGzLSu9Zw3f16eCV5DCK7AmjO@LA5vEcDsT3oG13g7cAFDCNatq1EV98O2ZxbCqyxk88UtTt89FU3eOrLJkVZPX9FPrbRD/jlQoVuW3r9I2w6U8cSE3@f3y@pp@j@F1EHlDV62a@DcsG9DR0p3gtvkuw4@Xn7@@lGEGq2PR5Ae4Y/DalqMTA3kG@23F5KG9AQt1pzaD4udoi2ePwNXWAJ6rrQmItgYIPW1N4GtrgmAMhBqbYK6xCRZjIBoBc0cnfAQuUX1Evgn8MRCMAdVHFJhA9RGFJliMgWgEeM4YUBOMjAZJEGqlB0AcIiMIeZyg76iZk0D2IUn7AZqL1QeDxeqB4WL1wWCxemC4WH0wWKw@CPpD7wO9WAsDRJ46E1M88vXoTRDoCZtgcLx9MFdjMTT00MVYDBDK0w1cI4LIHSWOG5rAl8A3xMXw9CAxeAcgE/d7d12IK/LzuYrVRWp3Pr7/Bw "Python 3 – Try It Online"
#3: Post edited
# [Python 3], <s>268</s> 250 bytes- <!-- language-all: lang-python -->
- <pre><code>def a(n):
- 	if n<32:return n
- 	e=0
- 	while n>=2**e*64:e+=1
- 	f=2**e;l=n&(f-1);N=(n>>e)&31
	if(2*l==f and N%2==1)or 2*l>f:M=N+1	else:M=N- 	E=e+1
- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
- def b(r):
- 	E=r>>5;M=r&31
- 	if E==0:e=0;m=M
- 	else:e=E-1;m=M+32
- 	return m*2**e
- </code></pre>
[Try it online!][TIO-ku9znx9h]- Don't mind me always golfing your original implementations. :)
- [Python 3]: https://docs.python.org/3/
[TIO-ku9znx9h]: https://tio.run/##lZRbi6MwFICfza8IhR2MdUDjpdU2wsC6sLAtC/M4DEMvkQo2Fi8sS7e/vZuLDtrgw/ThkNMv537M5W9zKpl3vx9pBncmQzEw8gyytYfjijZtxSADBiUOMP6c8oJClhBsWdQK/ZjOiQuMTOqrgrAnM3t20WpLTJYkFD15rvBlYqsghDtnR7j9hglxUVlB/meSxRuynfNLtKipOAMjJXQureCGEJ5CykOsNiK6SsZM1@sA/dsAke7erES6KamSJOC3qi4iTAlxYp7z6kw2nXdK0mdX6HMP987g2RKp37OWHZq8ZDUk8AqMGWWH8khnMdzZXDvSTtuDGwAycEPrxuytPtjuTGNYN5UNc3Zpm@5ctk2viCwrWrdFQz5jvY3s301pimT63VXSebhUOePhZr9fXl/T7zG8jixv5lVFTfwbEgUoa6HOUFd87@HHy89fX/Jgw/pUtsUR7im8dukox0D04LCrqWjaGzDMvms25D9HSWQ/AldJDXiukjrASmog9JTUga@kDoIpECqsg4XCOlhOgWgCLBzl8BG4WNYR@Trwp0AwBWQdUaADWUcU6mA5BaIJ4DlTQE4w0grEQagiPQDsYGGB8eMEfUfOHAeiDkG6D1BfrCEYLdYAjBdrCEaLNQDjxRqC0WINQTAc@hCoxVpqIPJkT/Tgka9Gr4NATVgHo/YOwUKORYuhhs7HooFQdDdwNQssdhQ7bqgDXwBfC86HpwaJwDsAGX/v@@eCP5Gf5zqWD6nV6@j@Hw "Python 3 – Try It Online"
- # [Python 3], <s>268</s> <s>250</s> 235 bytes
- <!-- language-all: lang-python -->
- <pre><code>def a(n):
- 	if n<32:return n
- 	e=0
- 	while n>=2**e*64:e+=1
- 	f=2**e;l=n&(f-1);N=(n>>e)&31
- 	M=N+((2*l==f and N%2)or 2*l>f)
- 	E=e+1
- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
- def b(r):
- 	E=r>>5;M=r&31
- 	if E==0:e=0;m=M
- 	else:e=E-1;m=M+32
- 	return m*2**e
- </code></pre>
- [Try it online!][TIO-kuahuczz]
- Don't mind me always golfing your original implementations. :)
- Golfed 15 bytes thanks to [**@celtschk**](https://codegolf.codidact.com/users/8056)'s [advice](https://codegolf.codidact.com/comments/thread/4678#comment-14008).
- [Python 3]: https://docs.python.org/3/
- [TIO-kuahuczz]: https://tio.run/##lZTbitswEIavracQgS6SkwVbPiR2IsNCXSg0obCXy7LkIJOAIwcfKCXNs6c62Isd4YvNxeDJ55l/RjPW5W99LLh3vx9YBreI4xhYpwzylUfiktVNySEHFqMOsP4cTzmDPKHEtpkd@jGbUhdYmfKXOeVPKHt28XJDEU8Shp88Qdd0M0WI2DmlIj8/wM03gosSin@SDAMrpWzqKsk1pUIzFTmXaymn1VG6WgX43xrI@naolPWltEySQLxVKgkRm1LqxKLI5ZmuRbV5xYSXPrvSn3qkSwbPtqz1njV8X58KXkEKr8CaML4vDmwSw@1MeAfWejtwA0AJ16yqURf1wbdnFsOqLmfwxC9N3T4XTd05ssqSVU1e00@tt0H8O1KhWJXfvkrbDJfyxIXc5PfL62v6PYbXQeQNXbVq4t@wbEBHS3eC2@a7DD9efv76UoYZrI5Fkx/gjsFrW45ODOQZ7LcVk4f2BizUndoMip@jLZ49AldbA3iutiYg2hog9LQ1ga@tCYIxEGpsgrnGJliMgWgEzB2d8BG4RPUR@Sbwx0AwBlQfUWAC1UcUmmAxBqIR4DljQE0wMhokQaiVHgBxiIwg5HGCvqNmTgLZhyTtB2guVh8MFqsHhovVB4PF6oHhYvXBYLH6IOgPvQ/0Yi0MEHnqTEzxyNejN0GgJ2yCwfH2wVyNxdDQQxdjMUAoTzdwjQgid5Q4bmgCXwLfEBfD04PE4B2ATFzw3XUhrsjP5ypWF6nd@fj@Hw "Python 3 – Try It Online"
#2: Post edited
# [Python 3], 268 bytes- <!-- language-all: lang-python -->
<pre><code>def a(n:int)->int:- 	if n<32:return n
- 	e=0
- 	while n>=2**e*64:e+=1
- 	f=2**e;l=n&(f-1);N=(n>>e)&31
- 	if(2*l==f and N%2==1)or 2*l>f:M=N+1
- 	else:M=N
- 	E=e+1
- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
def b(r:int)->int:- 	E=r>>5;M=r&31
- 	if E==0:e=0;m=M
- 	else:e=E-1;m=M+32
- 	return m*2**e
- </code></pre>
[Try it online!][TIO-ku9wp6bz]- Don't mind me always golfing your original implementations. :)
- [Python 3]: https://docs.python.org/3/
[TIO-ku9wp6bz]: https://tio.run/##lZRJi9swFIDP1q8QgQ6Wk4AtL4mVyDBQFwpNKMxxGEoWmQQcOXihlDS/PdViD3aED83hoZdPb3/W9U99Krj/eBxZBnc2J2deo3kiJAHWOYN87WNSsropOeTAYtQF1u/TOWeQJxQ7DnOigLAp9YCVKX2VU/5iZ3MPrbbU5knC0IvvSV82dnJKRRR@hNsvmFIPFSUUfyYZ2dDtVFxiecXkGVgpZVNlBTeUihRSEWK1kdF1Mna6Xofo7wbIvPd2Ocg7pWWShOJ62YaGKaUuEcmvLnTThmE0nXtSn/q48wovjqzhkTX8UJ8LXkEKb8CaMH4ojmxC4G4mtCNrtT24A6AyqFlV253VL767MAKrupzBM782dXsumrpTEJEhqyav6Wes94H9h61MkUq/vUpbD9dS1Glnk5@vb2/pVwJvA8u7fdNRk@COZAHaWqoT1Bbfefj2@v3Hf3mYwepUNPkR7hm8telox0D24LCrmGzaO7DsrmszKH6ulmj2DDwtDeB7WpoAa2mAyNfSBIGWJgjHQKSxCRYam2A5BuIRsHC1w2fgYVVHHJggGAPhGFB1xKEJVB1xZILlGIhHgO@OATXB2CgQh5GO9ASwi6UFxs8TDFw1cxzKOiRpP0BzsfpgsFg9MFysPhgsVg8MF6sPBovVB2F/6H2gF2tpgNhXPTGDx4EevQlCPWETDNrbBws1FiOGHroYiwEi2d3QMyyw3FHsepEJAgkCI7gYnh4kAh8AZOLh754L8UR@niuiHlKn09HjHw "Python 3 – Try It Online"
- # [Python 3], <s>268</s> 250 bytes
- <!-- language-all: lang-python -->
- <pre><code>def a(n):
- 	if n<32:return n
- 	e=0
- 	while n>=2**e*64:e+=1
- 	f=2**e;l=n&(f-1);N=(n>>e)&31
- 	if(2*l==f and N%2==1)or 2*l>f:M=N+1
- 	else:M=N
- 	E=e+1
- 	if M==32:E+=1;M=0
- 	return(E<<5)|M
- def b(r):
- 	E=r>>5;M=r&31
- 	if E==0:e=0;m=M
- 	else:e=E-1;m=M+32
- 	return m*2**e
- </code></pre>
- [Try it online!][TIO-ku9znx9h]
- Don't mind me always golfing your original implementations. :)
- [Python 3]: https://docs.python.org/3/
- [TIO-ku9znx9h]: https://tio.run/##lZRbi6MwFICfza8IhR2MdUDjpdU2wsC6sLAtC/M4DEMvkQo2Fi8sS7e/vZuLDtrgw/ThkNMv537M5W9zKpl3vx9pBncmQzEw8gyytYfjijZtxSADBiUOMP6c8oJClhBsWdQK/ZjOiQuMTOqrgrAnM3t20WpLTJYkFD15rvBlYqsghDtnR7j9hglxUVlB/meSxRuynfNLtKipOAMjJXQureCGEJ5CykOsNiK6SsZM1@sA/dsAke7erES6KamSJOC3qi4iTAlxYp7z6kw2nXdK0mdX6HMP987g2RKp37OWHZq8ZDUk8AqMGWWH8khnMdzZXDvSTtuDGwAycEPrxuytPtjuTGNYN5UNc3Zpm@5ctk2viCwrWrdFQz5jvY3s301pimT63VXSebhUOePhZr9fXl/T7zG8jixv5lVFTfwbEgUoa6HOUFd87@HHy89fX/Jgw/pUtsUR7im8dukox0D04LCrqWjaGzDMvms25D9HSWQ/AldJDXiukjrASmog9JTUga@kDoIpECqsg4XCOlhOgWgCLBzl8BG4WNYR@Trwp0AwBWQdUaADWUcU6mA5BaIJ4DlTQE4w0grEQagiPQDsYGGB8eMEfUfOHAeiDkG6D1BfrCEYLdYAjBdrCEaLNQDjxRqC0WINQTAc@hCoxVpqIPJkT/Tgka9Gr4NATVgHo/YOwUKORYuhhs7HooFQdDdwNQssdhQ7bqgDXwBfC86HpwaJwDsAGX/v@@eCP5Gf5zqWD6nV6@j@Hw "Python 3 – Try It Online"
#1: Initial revision
# [Python 3], 268 bytes <!-- language-all: lang-python --> <pre><code>def a(n:int)->int: 	if n<32:return n 	e=0 	while n>=2**e*64:e+=1 	f=2**e;l=n&(f-1);N=(n>>e)&31 	if(2*l==f and N%2==1)or 2*l>f:M=N+1 	else:M=N 	E=e+1 	if M==32:E+=1;M=0 	return(E<<5)|M def b(r:int)->int: 	E=r>>5;M=r&31 	if E==0:e=0;m=M 	else:e=E-1;m=M+32 	return m*2**e </code></pre> [Try it online!][TIO-ku9wp6bz] Don't mind me always golfing your original implementations. :) [Python 3]: https://docs.python.org/3/ [TIO-ku9wp6bz]: https://tio.run/##lZRJi9swFIDP1q8QgQ6Wk4AtL4mVyDBQFwpNKMxxGEoWmQQcOXihlDS/PdViD3aED83hoZdPb3/W9U99Krj/eBxZBnc2J2deo3kiJAHWOYN87WNSsropOeTAYtQF1u/TOWeQJxQ7DnOigLAp9YCVKX2VU/5iZ3MPrbbU5knC0IvvSV82dnJKRRR@hNsvmFIPFSUUfyYZ2dDtVFxiecXkGVgpZVNlBTeUihRSEWK1kdF1Mna6Xofo7wbIvPd2Ocg7pWWShOJ62YaGKaUuEcmvLnTThmE0nXtSn/q48wovjqzhkTX8UJ8LXkEKb8CaMH4ojmxC4G4mtCNrtT24A6AyqFlV253VL767MAKrupzBM782dXsumrpTEJEhqyav6Wes94H9h61MkUq/vUpbD9dS1Glnk5@vb2/pVwJvA8u7fdNRk@COZAHaWqoT1Bbfefj2@v3Hf3mYwepUNPkR7hm8telox0D24LCrmGzaO7DsrmszKH6ulmj2DDwtDeB7WpoAa2mAyNfSBIGWJgjHQKSxCRYam2A5BuIRsHC1w2fgYVVHHJggGAPhGFB1xKEJVB1xZILlGIhHgO@OATXB2CgQh5GO9ASwi6UFxs8TDFw1cxzKOiRpP0BzsfpgsFg9MFysPhgsVg8MF6sPBovVB2F/6H2gF2tpgNhXPTGDx4EevQlCPWETDNrbBws1FiOGHroYiwEi2d3QMyyw3FHsepEJAgkCI7gYnh4kAh8AZOLh754L8UR@niuiHlKn09HjHw "Python 3 – Try It Online"