请解释输出 #包括 内部主(空) { 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的补语,那么你应该知道
这将给出第一个问题的答案,第二个问题也是如此。要理解输出,您需要熟悉表示负二进制数的。从+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)