我想得到相反数字的二进制数(表示x - > - (x)和 - (x) - > x)。二进制相反数
算法是什么?我想过将所有位(“1”改为“0”和“0”改为“1”),并将“1”添加到它。可以吗?
日Thnx
我想得到相反数字的二进制数(表示x - > - (x)和 - (x) - > x)。二进制相反数
算法是什么?我想过将所有位(“1”改为“0”和“0”改为“1”),并将“1”添加到它。可以吗?
日Thnx
你的算法是补号正确:
-x = ~x + 1
对于一个补,你会使用:
-x = ~x
而对于符号 - 幅度号:
-x = x^(1 << n)
其中n
是单词中符号位的偏移量。我在此处使用C运算符表示法 - ^
是按位异或运算符,而<<
是左移位。
对于另一个数字表示形式,您需要使用其他操作。
你能提供给我有更好的算法? thnx – Batman 2011-03-28 20:29:34
@Adam D - 没有“更好的算法”。用任何合理的语言,你可以只写'-x',那为什么还要做其他事情呢? – 2011-03-28 20:31:54
@Adam D更好的算法?这听起来像一个家庭作业... – 2011-03-28 20:32:03
你可以谷歌认为:http://www.math.grin.edu/~rebelsky/Courses/152/97F/Readings/student-binary#neg – 2011-03-28 20:28:22