永发信息网

谁帮我详细解析下这个C源码

答案:4  悬赏:10  手机版
解决时间 2021-04-01 11:45
  • 提问者网友:我一贱你就笑
  • 2021-04-01 05:47
谁帮我详细解析下这个C源码
最佳答案
  • 五星知识达人网友:迟山
  • 2021-04-01 06:11
首先改成这样,你上面的那样不行的
main()
{
unsigned int a=2,b=4,c=5,d; 定义了 a b c d 四个变量,别把a b c 分别赋值了。

d=a|b;d&=c; 首先a和b相或得到d,接着d与c相与后,把值赋给d
printf("%d\n",d); 打印d
}追问这是书上的题目撒,不可能错的撒
全部回答
  • 1楼网友:醉吻情书
  • 2021-04-01 09:07
unsigned char a=2,b=4,c=5;
那么实际上,这三个变量在内存中实际上是以以下二进制方式存储
a=0000 0010
b=0000 0100
c=0000 0101
所以
d=a|b= 0000 0110 =6
d&=c;相当于d=d&c
所以
d=d&c= 0000 0110 & 0000 0101 =0000 0100 =4
|是按位或运算,这个位就是二进制位
&是按位与运算
  • 2楼网友:底特律间谍
  • 2021-04-01 08:34
12
第一步:a=2,所以a=0010,b=4,则b=0100,c=5,c=0101
第二步:d=a|b d=0110 d&=c即d=d&c 所以d=1100
最后算得d=12
希望采纳 呵呵追问答案是 4 哎追答谢谢哈 给我改正 我刚刚查了一下是我记错了
对不起 请原谅
答案给了一个错追问答案给了一个错? 答案是错的?
  • 3楼网友:山河有幸埋战骨
  • 2021-04-01 07:11
初始:二进制a =0000 0010, b=0000 0100, c=0000 0101
d = a | b; 可以得到二进制d =0000 0110 (十进制6)
d &= c; d = d &c ,可到到二进制d =0000 0100 (十进制4)追问为什么
d = a | b; 可以得到二进制d =0000 0110 (十进制6)
d &= c; d = d &c ,可到到二进制d =0000 0100 (十进制4)追答c语言按位与(&):如果两个相应的二进位都为1,则该位的结果值为1,否则为0。
c语言按位或(|):只要对应的二个二进位有一个为1时,结果位就为1。
a 0000 0010 d 0000 0110
| b 0000 0100 & c 0000 0101
——————————— ——————————
0000 0110 0000 0100
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯