|= ,<<等的运算符是怎么个意思?
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才结问题。
非常感谢下面那位兄弟啊。
你解了我很大一个疑惑,但是十分不好意思啊,银狼捷足先登了,我和他聊了好久的。 展开
n |= 1;
}
if (both) {
n |= 1 << 3;
}
if (doubleHeight) {
n |= 1 << 4;
}
if (doubleWidth) {
n |= 1 << 5;
}
if (underLine) {
n |= 1 << 7;
}
像这个是怎么算的?详细点,网上的资料也行。
20分做底,说的明白易懂了+30才结问题。
非常感谢下面那位兄弟啊。
你解了我很大一个疑惑,但是十分不好意思啊,银狼捷足先登了,我和他聊了好久的。 展开
2个回答
展开全部
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)
运算符 | 是按位或运算 可以把两个运算数先写成二进制再看比如二进制数
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 广告
2024-08-28 广告
在当今竞争激烈的商业环境中,企业需要不断提高自身的竞争力,以保持市场份额和增加利润。通过人效提升,企业可以更有效地利用有限的资源,提高生产力和效益,从而实现盈利目标。中智咨询提供全方位的组织人效评价与诊断、人效提升方案等数据和管理咨询服务。...
点击进入详情页
本回答由中智咨询提供
展开全部
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 效率高
还有什么不明白的自己可以仔细研究一下.. 祝你早日成牛人
运算符 | 是按位 或 运算符 先转换成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 效率高
还有什么不明白的自己可以仔细研究一下.. 祝你早日成牛人
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询