m0_74781001 2022-12-04 02:32 采纳率: 66.7%
浏览 74
已结题

关于bitwise and/or 的问题

有三道问题
1.Bitwise and,or

img

2.32-bit full adder

img


3.subtraction

img

  • 写回答

3条回答 默认 最新

  • 一切因为有你 2022-12-04 08:36
    关注
    ##1
    def and_32bit(a,b):
        return tuple([int(v) & int(b[i]) for i,v in enumerate(a)])
    
    def or_32bit(a,b):
        return tuple([int(v) | int(b[i]) for i,v in enumerate(a)])
    
    ##2
    def add32(a, b):
        x, y = int(a, 2), int(b, 2)
        c1=max(len(bin(x)),len(bin(y)))
        while y:
            answer = x ^ y
            carry = (x & y) << 1
            x, y = answer, carry
        return bin(x)[2:].zfill(32),len(bin(x))-c1
    
    ##3
    def addsub32(a, b,control):
        if control==0:
            return add32(a,b)
        x, y = int(a, 2), int(b, 2)
        c1=max(len(bin(x)),len(bin(y)))
        a = a.zfill(32)
        b = b.zfill(32)
        new_binary = ''
        carry = 0
        i = len(a)-1
        while i >= 0:
            s = int(a[i]) - int(b[i])
            if s == -1:
                if carry == 0:
                    carry = 1
                    new_binary = new_binary + "1"
                else:
                    carry = 1
                    new_binary = new_binary + "0"
            if s == 0:
                if carry == 0:
                    carry = 0
                    new_binary = new_binary + "0"
                else:
                    carry = 1
                    new_binary = new_binary + "1"
            if s == 1:
                if carry == 0:
                    carry = 0
                    new_binary = new_binary + "1"
                else:
                    carry = 0
                    new_binary = new_binary + "0"
            i = i - 1
        if carry > 0:
            new_binary = new_binary + "1"
        return new_binary[::-1],0
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 12月12日
  • 已采纳回答 12月4日
  • 修改了问题 12月4日
  • 修改了问题 12月4日
  • 展开全部

悬赏问题

  • ¥200 相机拍直接转存到电脑上 立拍立穿无线局域网传
  • ¥15 (关键词-电路设计)
  • ¥15 如何解决MIPS计算是否溢出
  • ¥15 vue中我代理了iframe,iframe却走的是路由,没有显示该显示的网站,这个该如何处理
  • ¥15 操作系统相关算法中while();的含义
  • ¥15 CNVcaller安装后无法找到文件
  • ¥15 visual studio2022中文乱码无法解决
  • ¥15 关于华为5g模块mh5000-31接线问题
  • ¥15 keil L6007U报错
  • ¥15 webapi 发布到iis后无法访问