C语言问题急急急!!!

#include<stdio.h>voidmain(){unsignedshortintzhuan(unsignedshortinta);unsignedshortint... #include<stdio.h>

void main()
{
unsigned short int zhuan (unsigned short int a);
unsigned short int a;

printf ("Enter number:");
scanf ("%o", &a);

printf ("%o\n", zhuan(a));
}

unsigned short int zhuan (unsigned short int a)
{
unsigned short int z;
z = a & 0100000;
if (z==0100000)
z = ~a+1;
else
z = a;

return z;
}
这个程序中令z = a & 0100000是什么意思,还有0100000是干什么的。
展开
 我来答
忘至白葬不情必0T
2008-08-07 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:90%
帮助的人:1.2亿
展开全部
楼上两位,你们在哪个C的环境下看到过二进制常量???

C语言里,0开头的数字常量表示八进制数.这里的0100000表示八进制数100000,对应的二进制是10000000 00000000
这里a是short型,即16位整数,所以a & 0100000就是让a与16位二进制整数10000000 00000000作位与操作,也就是将a的最高位保持不变,其余各位变成0.
蜜长青
2008-08-07 · TA获得超过1801个赞
知道小有建树答主
回答量:1849
采纳率:0%
帮助的人:1417万
展开全部
z = a & 0100000是按位取与
0100000是二进制的数 十进制是32
作用是判断这个数是否是2^5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nklwg
2008-08-07 · TA获得超过972个赞
知道小有建树答主
回答量:333
采纳率:0%
帮助的人:268万
展开全部
a & 0100000 中的“&”是“与”的意思
就是按位求和
0100000是二进制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谢应宸
2008-08-07 · TA获得超过2640个赞
知道大有可为答主
回答量:2731
采纳率:66%
帮助的人:2112万
展开全部
是为了让a中除了第7位不变其他位都置0,用来对第7位进行判断的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大白兔229
2008-08-07 · TA获得超过842个赞
知道小有建树答主
回答量:609
采纳率:0%
帮助的人:281万
展开全部
先看基础吧朋友,别急功近利啊,打好基础很重要
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飘香自然
2008-08-08
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
“&”是“与”的意思,1&1=1 0&1=0,1&0=0,0&0=0;a & 0100000 中的“&”就是按位求与,为了让a中除了第7位不变其他位都置0,用来对第7位进行判断的.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式