int n , nsts; n = 1<<(i+3); ⼀⼀这句是什么意思 ?? if(nsts&n) {} else {}

vc ++ 操作符问题
2024-12-01 13:29:52
推荐回答(3个)
回答1:

这个是携州c++中的裤明左移操作符
表示把1转化为二进制数向左移动i+3个位置后再转化成十进制数赋胡隐告值给n
左移后右边空缺的位置用0补齐

回答2:

<<是扮孙手向左移位操作符,相当于乘以多少个2
n=1<<(i+3)就凯春是 把1左移i+3位,然后结厅嫌果赋值给n;也就是n=2的i+3次幂
如果i=1,那么n=1<<4=2*2*2*2=16

回答3:

举个铅镇例子吧,大致的岩激行上一位哥们儿也说的差不多了。
十进制的8化为二进制就是1000,那么1000<<3就是左移三粗哗位变成1000000(二进制)。而&则是位与的意思,唉,还是举例子吧!比如11&10,先化为二进制,也就是1011和1010,计算后变成1010
具体如下:
0&0 = 0
0&1 = 0
1&0 = 0
1&1 = 1