各位神牛: 请问 a[i>>1] 、 (i&1)在C语言中是什么意思?

 我来答
L_o_o_n_i_e
2011-08-13 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5075万
展开全部
a[i>>1] 中 i>>1 是 让 整型数 i 的数值 右移 2 进制 1 位 的运算,用 算得的值 作 a 数组 的下标。
例如: i=5; 2 进制 是 0101; 右移 2 进制 1 位 得 0010;十进制 2。
i>>1 效果 与 i = i / 2 一样。
-----------
(i&1) 是按位 与 运算,相当于 取出 i 的2 进制数值的个位数。 如果 i 是 十进制 奇数,i&1 得 1; 如果 i 是 十进制 偶数,i&1 得 0。
如果 是 条件语句:
if (i&1) {.....} else {.....};
意思是:
if (i&1) {i 是 奇数,执行这里} else {.i 是 偶数,执行这里....};
0 -- 布尔值“假”,1 -- “真”。
sun_siliang
推荐于2017-11-24 · TA获得超过2.6万个赞
知道大有可为答主
回答量:9913
采纳率:100%
帮助的人:4468万
展开全部
a[i>>1]表示访问a的第i>>1个元素,i>>1表示i右移一位。

i&i表示i与1按位与,即i对应的二进制与1对应的二进制按位与运算
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huaweiyuangong
2011-08-12 · TA获得超过373个赞
知道小有建树答主
回答量:727
采纳率:0%
帮助的人:285万
展开全部
a肯定是个指针或者数组名, a如果是数组名,i>>1就是数组下标,a如果是指针,i>>1就代表指针a偏移的位数, i>>1就不用我解释了吧,就把i 右移一位, 一般情况就就是i的二分之一. i&1, 就是测试i是奇数还是偶数,如果i&1是0的话i就是偶数,i&1是1的话就是偶数.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzzhhhttt114
2011-08-12 · 超过15用户采纳过TA的回答
知道答主
回答量:89
采纳率:0%
帮助的人:42.9万
展开全部
i>>1表示i右移一位,i&i表示i与1按位与。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式