计算2';Excel中的s补码

计算2';Excel中的s补码,excel,binary,Excel,Binary,如何在Excel中计算二进制数的2s补码。我需要哪些Excel函数 例如,如果我有二进制序列11101010,则2s补码可以如下获得: 将所有1替换为0,将0替换为1:0000101 将1添加到步骤1的结果中:0001010 我需要上面的excel实现。此公式遵循您的步骤: =TEXT(DEC2BIN(BIN2DEC(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,1,2),0,1),2,0))+1),REPT("0",LEN(A1))) Scott Craner的答案

如何在Excel中计算二进制数的2s补码。我需要哪些Excel函数

例如,如果我有二进制序列
11101010
,则2s补码可以如下获得:

  • 将所有1替换为0,将0替换为1:
    0000101
  • 将1添加到步骤1的结果中:
    0001010

  • 我需要上面的excel实现。

    此公式遵循您的步骤:

    =TEXT(DEC2BIN(BIN2DEC(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,1,2),0,1),2,0))+1),REPT("0",LEN(A1)))
    

    Scott Craner的答案很好,因为它实现了OP使用字符串操作的想法。然而,我觉得更好的办法是通过十进制数的减法来计算2的补码

    使用
    BIN2DEC('Binary String')
    或简单地使用您可能在某个时候转换为二进制的原始十进制数

    然后,如果您想计算数字的8位2的补码,您可以使用
    POW(2,8)-BIN2DEC(“二进制字符串”)从
    2^8
    中减去数字

    然后使用
    DEC2BIN()


    定义2的补码与反转位模式和增加1张贴的OP只是一个结果,这更基本。本教程的作者在页面底部讨论了这个定义。

    Two的补码,在它的基本形式中是十进制符号的负数

    与答案非常相似

    如果A2具有二进制数,则B2:

    =RIGHT(DEC2BIN(-BIN2DEC(A2)),LEN(A2))
    
    注意事项:

    • 二进制数不能超过10位或以第一位作为符号位的字符
    记住,2的补码是计算机中用来表示负数的减法的一种方法,所以这个问题可以通过简单的减法来解决,所以先得到补码,然后再加一

    =DEC2BIN(255-BIN2DEC(A1)+1)


    其中A1是以二进制数作为文本的单元格。如果你想用一个更大的数字,那么就用你想用的位数表示的最大的数字,这里我的例子是8位,所以(2^8)-1=255

    非常感谢。但当我模仿你的角色时,我得到了一个error@mrleo您可能需要使用
    而不是
    作为分隔符。用
    替换所有