我在excel中有这个例子时有一个问题。
例如,您的号码为 11101010 。如何进行此二进制数的 2s补码。我需要在excel上使用哪些功能?
我得到的2s补码:
但是如何在excel中解决这个问题:/
请求帮助。
答案 0 :(得分:1)
Scott Craner的答案很不错,因为它实现了OP使用字符串操作的初衷。但是,我觉得一个更好的主意是通过减十进制数来计算2的补数。
使用BIN2DEC('Binary String')
或仅使用您可能在某些时候已转换为二进制的原始十进制数字。
然后,如果您要计算数字的8位2的补数,则可以使用2^8
从POW(2, 8) - BIN2DEC('Binary String')
中减去数字
然后使用DEC2BIN()
使用反相位模式并由OP发布的1加2的补码的定义只是这个更基本的definition of 2's complement的结果。该页面的作者在页面底部附近讨论了这个定义。
答案 1 :(得分:1)
Two的补码,它的基本形式是它的十进制表示法的负数。
与this答案
非常相似如果A2具有二进制数,则B2:
=RIGHT(DEC2BIN(-BIN2DEC(A2)),LEN(A2))
注意事项:
答案 2 :(得分:0)
此公式遵循您的步骤:
=TEXT(DEC2BIN(BIN2DEC(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,1,2),0,1),2,0))+1),REPT("0",LEN(A1)))
https://www.tinymce.com/docs/get-started/spell-checking/#tinymcespellcheckerproplugin
答案 3 :(得分:0)
请记住,二进制补码是为了在计算机中表示负数而进行减法的方式发明的,因此可以通过简单的减法来解决此问题,因此先求出补数再加一个即可。
= DEC2BIN(255-BIN2DEC(A1)+1)
其中A1是具有二进制数字作为文本的单元格。如果要使用更大的数字,则使用可以由您要使用的位数表示的最大数字,这里我的示例是8位,因此(2 ^ 8)-1 = 255