美文网首页
【python】整数的原码、反码、补码和移码实现

【python】整数的原码、反码、补码和移码实现

作者: fa220536580e | 来源:发表于2019-10-21 15:23 被阅读0次

    张俊玲

    19021210858

    转载自:https://blog.csdn.net/u011956367/article/details/102758066

    【嵌牛导读】在Python中如何实现整数的原码、反码、补码和移码。

    【嵌牛鼻子】正数 负数 原码 反码 补码 移码 

    【嵌牛提问】正数和负数分别取原码、反码、补码和移码的规则是什么?

    【嵌牛正文】

    在计算机中,数据以二进制表示,本文以第一个0/1表示符号位,以bin(x)表示x绝对值的二进制串,以rev(x)表示x绝对值的二进制串按位取反的二进制串。

    例如:

    bin(2)=10

    rev(2)=01

    原码

    正数的原码

    0,bin(x)

    负数的原码

    1,bin(x)

    反码

    正数的反码

    0,bin(x)

    负数的反码

    1,rev(x)

    补码

    正数的补码

    0,bin(x)

    负数的补码

    1,rev(x)+1

    移码

    正数的补码

    1,bin(x)

    负数的补码

    0,rev(x)+1

    规则

    0的原码反码补码相等,均为0,0

    正数的原码反码补码相等

    负数的反码等于原码的数值按位取反(符号位不变)

    负数的补码等于反码加1

    移码等于补码的符号位取反

    python实现

    flag=0

    _s=''

    def getbin(s):

        _s=bin(abs(s))

        _s=_s.replace('0b','')

        return _s

    def rev(s):

        s=s.replace('1','2')

        s=s.replace('0','1')

        s=s.replace('2','0')

        return s

    def y(s):

        print('原码是:%d,%s\t'%(flag,_s))

    def f(s):

        global _s

        if flag==0:

            print('反码是:%d,%s\t'%(flag,_s))

            return

        _s=rev(_s)

        print('反码是:%d,%s\t'%(flag,_s))

        return

    def by(s):

        global _s

        _s=int(_s,2)+1

        _s=getbin(_s)

        print('补码是:%d,%s\t'%(flag,_s))

        print('移码是:%d,%s\t'%((flag+1)%2,_s))

    def out(s):

        y(s)

        f(s)

        by(s)

    while True:

        try:

            s=int(input('请输入一个十进制整数:\n'))

            if s>=0:

                flag=0

            else:

                flag=1

            _s=getbin(s)

            out(s)

            print()

        except IOError:

            break

    请输入一个十进制整数:

    -2

    原码是:1,10

    反码是:1,01

    补码是:1,10

    移码是:0,10

    请输入一个十进制整数:

    2

    原码是:0,10

    反码是:0,10

    补码是:0,11

    移码是:1,11

    相关文章

      网友评论

          本文标题:【python】整数的原码、反码、补码和移码实现

          本文链接:https://www.haomeiwen.com/subject/moutvctx.html