我刚开始学习如何在Sagemath中编码,我知道它与python类似,但我对此也没有多少经验。
我正在尝试添加两个代表分数的二进制数。就是这样的事情
a = '110'
b = '011'
bin(int(a,2) + int(b,2))
但是使用代表分数的值,例如'1.1' 提前谢谢!
答案 0 :(得分:0)
如果你想在vanilla Python中这样做,手工解析二进制分数也不错(第一部分来自this answer);
cat /proc/net/stat/arp_cache | sed -e '2,$s/\s*\([0-9a-f][0-9a-f]*\)\s*/ \$\(\( 0x\1 \)\) /g' -e 's/^/echo /' | bash | column -t
entries allocs destroys hash_grows lookups hits res_failed rcv_probes_mcast rcv_probes_ucast periodic_gc_runs forced_gc_runs unresolved_discards table_fulls
8 2 0 0 0 0 0 0 0 0 0 0 0
8 0 0 0 211 58 0 0 0 0 0 0 0
8 2 0 0 6319 1677 0 0 0 3882 0 0 0
8 4 0 0 4731 1299 0 0 0 0 0 0 0
答案 1 :(得分:0)
在 python 中,您可以使用 Binary fractions 包。使用此包,您可以将二进制分数字符串转换为浮点数,反之亦然。然后,您可以对其进行操作。
示例:
>>> from binary_fractions import Binary
>>> sum = Binary("1.1") + Binary("10.01")
>>> str(sum)
'0b11.11'
>>> float(sum)
3.75
>>>
它有更多的辅助函数来操作二进制字符串,例如:shift、add、fill、to_exponential、invert...
PS:无耻的插件,我是这个包的作者。