clear sky . 2023-12-25 17:12 采纳率: 23.1%
浏览 4

负数的异或运算为什么出错

         原码             反码           补码

a=-3: 1000 0011, 1111 1100, 1111 1101;
b=-1: 1000 0001, 1111 1110, 1111 1111;

a^b码:0000 0010;
a^b反码:0000 0001;
a^b原码:1111 1110;

所以a^b十进制应该为254,但为什么实际上为2

  • 写回答

2条回答 默认 最新

  • 她嫌我菜呜呜呜 2023-12-25 17:15
    关注
    让我们重新审视一下问题。首先,让我们确定一下给定的值和操作。
    a = 10 (十进制) = 0000 1010 (二进制)
    b = -3 (十进制) = 1111 1101 (二进制) (假设使用 8 位表示,以补码形式表示负数)
    c = -1 (十进制) = 1111 1111 (二进制) (假设使用 8 位表示,以补码形式表示负数)
    然后,让我们执行异或运算(a^b):
      0000 1010  (a)
    ^ 1111 1101  (b)
    -------------
      1111 0111
    
    根据您提供的数值,异或运算的结果为 1111 0111。这个二进制数表示的十进制数是 -9
    根据您的原始推导,您提到了 b^c 的结果是 0000 0010,但是请注意,b  c 的异或结果不会影响到 a^b 的计算结果。a^b 只涉及 a  b 之间的异或运算。
    所以,按照给出的数据,a^b 的结果是 -9,而不是 254  2。可能存在误解或错误在计算过程中。如果您需要更多帮助,请提供更多信息或详细说明您的问题。
    
    
    
    评论

报告相同问题?

问题事件

  • 修改了问题 12月25日
  • 创建了问题 12月25日

悬赏问题

  • ¥15 为什么跑这个代码,文件显示不在呀
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求
  • ¥15 华为超融合部署环境下RedHat虚拟机分区扩容问题
  • ¥15 哪位能做百度地图导航触点播报?