|= ,<<等的运算符是怎么个意思?

if(fontB){n|=1;}if(both){n|=1<<3;}if(doubleHeight){n|=1<<4;}if(doubleWidth){n|=1<<5;}... if (fontB) {
n |= 1;
}
if (both) {
n |= 1 << 3;
}
if (doubleHeight) {
n |= 1 << 4;
}
if (doubleWidth) {
n |= 1 << 5;
}
if (underLine) {
n |= 1 << 7;
}

像这个是怎么算的?详细点,网上的资料也行。
20分做底,说的明白易懂了+30才结问题。
非常感谢下面那位兄弟啊。
你解了我很大一个疑惑,但是十分不好意思啊,银狼捷足先登了,我和他聊了好久的。
展开
 我来答
百度网友34127f1
2009-08-08 · TA获得超过748个赞
知道小有建树答主
回答量:416
采纳率:0%
帮助的人:381万
展开全部
n |= 1相当于 n = n | 1
运算符 | 是按位或运算 可以把两个运算数先写成二进制再看比如二进制数
11(b) | 1(b) -> 11(b); 1(b)|10(b) -> 11(b); 1010(b)|101(b)->1111(b)
总之就是相应位上两个中只要有一个为1那么结果的这个位上为一

<<是左移运算符就是所有位左移n位,比如11(b)<<1 -> 110(b);
1010(b)<<3 -> 1010000(b)

n |= 1 << 7 就是先将1左移7位(即10000000(b) = 128(d))然后与n作按位或
(即给n的7号位置1)

参考资料: http://baike.baidu.com/view/379209.htm

中智咨询
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。... 点击进入详情页
本回答由中智咨询提供
th3639
2009-08-08 · TA获得超过297个赞
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:122万
展开全部
n |= 1 其实也可以写出 n = n | 1;

运算符 | 是按位 或 运算符 先转换成2进制

例如:9|
5 可写算式如下:
(9 | 5)
00001001 |
00000101
00001101 (十进制为13)可见9|5=13

只要对应的二个二进位有一个为1时,结果位就为1。

左移运算符“<<”。例如: 2<<2指把2的各二进位向左移动2位。
如2=00000010(十进制2),左移2位后为00000100(十进制8)。

这要比 2 * 2 * 2 效率高

还有什么不明白的自己可以仔细研究一下.. 祝你早日成牛人
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式