Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请解释输出 #包括 内部主(空) { int a=-3,b=5,c; c=a | b; printf(“%d”,c); c=a&b; printf(“%d”,c); }_C_Bitwise Operators - Fatal编程技术网

请解释输出 #包括 内部主(空) { int a=-3,b=5,c; c=a | b; printf(“%d”,c); c=a&b; printf(“%d”,c); }

请解释输出 #包括 内部主(空) { int a=-3,b=5,c; c=a | b; printf(“%d”,c); c=a&b; printf(“%d”,c); },c,bitwise-operators,C,Bitwise Operators,输出为-35,请说明如何操作?获取您选择的纸张和书写工具 用二进制写出-3和5(有关负数的用法,请参阅) 提示:| means OR,&means和拿一些纸和你选择的书写工具 用二进制写出-3和5(有关负数的用法,请参阅) 提示:|表示或,&means和-3=0xFFFD=1111111111111111111101 5=0101,因此按位OR不会更改第一个参数(只是将一与一重叠),结果仍然是-3 按位,取1101到0101之间的系数为0101=5:没有理由考虑所有的尾部在-3中,因为5=000

输出为
-35
,请说明如何操作?

获取您选择的纸张和书写工具

用二进制写出-3和5(有关负数的用法,请参阅)


提示:| means OR,&means和

拿一些纸和你选择的书写工具

用二进制写出-3和5(有关负数的用法,请参阅)


提示:|表示或,&means和

-3=0xFFFD=1111111111111111111101 5=0101,因此按位OR不会更改第一个参数(只是将一与一重叠),结果仍然是-3


按位,取1101到0101之间的系数为0101=5:没有理由考虑所有的尾部在-3中,因为5=0000 0000 0000 0101</P>P>3=0xFFFD=1111 1111α=α,所以按位或不改变第一个参数(仅与一个参数重叠),结果仍然是-


位,取1101到0101之间的COOMN,即0101=5:没有理由考虑所有的尾部在-3中,因为5=0000 0000 0000 0101 < /P> < P >如果你知道所有关于2的补语,那么你应该知道

  • 如何将2的补码中的3和5写出为第31位第32位。。。bit3n和bit51 bit52。。比特5N
  • 如何计算i=0时bit3i | bit5i的结果。。。n
  • 如何将结果转换回基数10

  • 第一个答案应该是这样的,第二个答案也是这样。

    如果你知道2的补语,那么你应该知道

  • 如何将2的补码中的3和5写出为第31位第32位。。。bit3n和bit51 bit52。。比特5N
  • 如何计算i=0时bit3i | bit5i的结果。。。n
  • 如何将结果转换回基数10

  • 这将给出第一个问题的答案,第二个问题也是如此。

    要理解输出,您需要熟悉表示负二进制数的。从+x到-x的转换实际上相当简单:对所有位进行补码,然后加一位。 现在假设整数的长度为8位(这足以检查5和-3):

    现在让我们看一下按位or:

    5: 0000 0101
    3: 0000 0011 => -3: 1111 1101
    
    正是-3的代表

    现在是按位和:

    1111 1101 | 0000 0101 = 1111 1101
    

    确切地说,5的二进制表示法要理解输出,您需要熟悉用于表示负数二进制数的。从+x到-x的转换实际上相当简单:对所有位进行补码,然后加一位。 现在假设整数的长度为8位(这足以检查5和-3):

    现在让我们看一下按位or:

    5: 0000 0101
    3: 0000 0011 => -3: 1111 1101
    
    正是-3的代表

    现在是按位和:

    1111 1101 | 0000 0101 = 1111 1101
    
    确切地说,5的二进制表示法,听说过’s定律吗。。。???提示就在表中,它概括并体现了被固定在主要语言编译器语法中的逻辑的原始冰冷真理

    更令人担忧的是,您不具备基本的CS101知识,并且发布了这个问题(如果您认为这是居高临下的话,很抱歉,但事实并非如此),我真的无法相信您看到的是一个C代码,却没有告诉任何关于二的补码、位逻辑。。。这里有点不对劲。。。若你们的大学讲师并没有告诉你们这些,那个么他说的讲师根本不应该在讲课,而应该找另一份工作。。。。唉

    听说过's定律。。。???提示就在表中,它概括并体现了被固定在主要语言编译器语法中的逻辑的原始冰冷真理


    更令人担忧的是,您不具备基本的CS101知识,并且发布了这个问题(如果您认为这是居高临下的话,很抱歉,但事实并非如此),我真的无法相信您看到的是一个C代码,却没有告诉任何关于二的补码、位逻辑。。。这里有点不对劲。。。若你们的大学讲师并没有告诉你们这些,那个么他说的讲师根本不应该在讲课,而应该找另一份工作。。。。叹气

    当您查看彼此并排的二进制表示时,它会有所帮助:

    • -3==11111111111111101
    • +5==0000 0101
    需要理解的是,如果
    |
    &
    两边的值相同,那么它们都会有一点独立。如果值不同(即一个操作数在该位置为0,另一个操作数在该位置为1),则其中一个操作数“获胜”,具体取决于您使用的是
    还是
    &

    当你或这些位在一起时,1获胜。然而,5与-3中的0在同一位置上有一个0,因此该位通过OR操作时保持不变。结果(
    1111111111111101
    )仍然与-3相同


    如果按位执行AND,则零将获胜。但是,5中的1s与-3中的1s匹配,因此这些位通过操作并保持不变。结果仍然是5。

    当您同时查看二进制表示时,它会有所帮助:

    • -3==11111111111111101
    • +5==0000 0101
    需要理解的是,如果
    |
    &
    两边的值相同,那么它们都会有一点独立。如果值不同(即一个操作数在该位置为0,另一个操作数在该位置为1),则其中一个操作数“获胜”,具体取决于您使用的是
    还是
    &

    当你或这些位在一起时,1获胜。然而,5与-3中的0在同一位置上有一个0,因此该位通过OR操作时保持不变。结果(
    1111111111111101
    )仍然与-3相同

    如果按位执行AND,则零将获胜。但是,5中的1s与-3中的1s匹配,因此这些位通过操作并保持不变。结果我
               p OR q
    
    p     ||    q      ||   p | q
    T(1)  ||    T(1)   ||     T(1)
    T(1)  ||    F(0)   ||     T(1)
    F(0)  ||    T(1)   ||     T(1)
    F(0)  ||    F(0)   ||     F(0)
    
              p AND q 
    
    p     ||    q      ||   p & q
    T(1)  ||    T(1)   ||     T(1)
    T(1)  ||    F(0)   ||     F(0)
    F(0)  ||    T(1)   ||     F(0)
    F(0)  ||    F(0)   ||     F(0)