有没有一种简单的方法可以实现二进制算术 w/o 2 的补码?
Is there an easy way to implement binary arithmetic w/o 2's compliment?
我是一名计算机科学专业的大一学生,请原谅我对该领域的了解不足。
我们首先学习了如何手工进行简单的二进制运算
1) 如何用二进制做加法
2) 如何用二进制做减法
然而,即使是我这种没有经验的程序员也知道我们学到的方法很难转化为算法计算机代码example(但也许只有我一个人如此)
然后我们了解了 2 的补码,这让生活变得更轻松了(例如,负数现在很容易实现,减法只是加负数)
But what I want to know is if there was a way w/o 2's compliment to do
everything (multiplication/division/addition/subtraction). Or was this
the very purpose of 2's compliment and I'm just totally left field
entertaining an idea which is completely useless and that nobody cares
about in cs?
2 的补码效果很好。你到底想改进什么?它可以处理任意大的数字,并且只使用一系列非常简单的处理单元来完成它的工作。
主要的例外是浮点数,它不使用 2 的补码。我相信您很快就会了解 IEEE-754,它很有趣 :)
最后,noöne 强迫您使用 2 的补码。你可以随心所欲,只是2的又好又便宜。如果您愿意,您可以让您的软件用罗马数字计算所有内容。不过不会很快。
我是一名计算机科学专业的大一学生,请原谅我对该领域的了解不足。
我们首先学习了如何手工进行简单的二进制运算
1) 如何用二进制做加法
2) 如何用二进制做减法
然而,即使是我这种没有经验的程序员也知道我们学到的方法很难转化为算法计算机代码example(但也许只有我一个人如此)
然后我们了解了 2 的补码,这让生活变得更轻松了(例如,负数现在很容易实现,减法只是加负数)
But what I want to know is if there was a way w/o 2's compliment to do everything (multiplication/division/addition/subtraction). Or was this the very purpose of 2's compliment and I'm just totally left field entertaining an idea which is completely useless and that nobody cares about in cs?
2 的补码效果很好。你到底想改进什么?它可以处理任意大的数字,并且只使用一系列非常简单的处理单元来完成它的工作。
主要的例外是浮点数,它不使用 2 的补码。我相信您很快就会了解 IEEE-754,它很有趣 :)
最后,noöne 强迫您使用 2 的补码。你可以随心所欲,只是2的又好又便宜。如果您愿意,您可以让您的软件用罗马数字计算所有内容。不过不会很快。