-
& 的作用?5
在环形队列中,用下面的代码判断它是否满了/* * check for full ring. If the queue is full and we have not * already scheduled a timeout, do so here. */ nexthead = (rnd_head + 1) & (RND_EVENTQSIZE - 1); if (nexthead == rnd_tail) {
请问这个 & 是怎么回事?
这个队列总是保留一个空位用来区分空和满的情况。RND_EVENTQSIZE 表明队列数 rnd_head 指向队列头,rnd_tail 指向队列尾。
这段代码没有错误,出自 netbsd。附件是这段代码所在的源码。
谢谢!
问题补充:
I got it. 在源码中有这样的定义:
sys/sys/rnd.h:#define RND_EVENTQSIZE 128
RND_EVENTQSIZE 是 2 的 n 次幂,这时
(rnd_head + 1) & (RND_EVENTQSIZE - 1)
相当于
(rnd_head + 1) % RND_EVENTQSIZE
非常感谢大家的热心!2009年10月14日 19:16
1个答案 按时间排序 按投票排序
-
位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
12.1.1 按位与运算
按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1,否则为0。参与运算的数以补码方式出现。
例如:9&5可写算式如下:
00001001 (9的二进制补码)
&00000101 (5的二进制补码)
00000001 (1的二进制补码)
可见9&5=1。
按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 ,保留低八位,可作a&255运算( 255 的二进制数为0000000011111111)。
【例12.1】
main(){
inta=9,b=5,c;
c=a&b;
printf("a=%dnb=%dnc=%dn",a,b,c);
}
2009年10月14日 19:25
相关推荐
ChatGPT是什么?有什么作用?如何使用?
缺陷报告是什么?缺陷报告的作用?以及模板
什么是立即执行函数?有什么作用?.md
电脑是否会代替老师的作用?最终版.pdf
存储类&作用域生命周期&链接属性.txt
PCB上的任何一条走线在通过高频信号的情况下都会对该信号造成时延时,蛇形走线的主要作用是补偿“同一组相关"信号线中延时较小的部分,这些部分通常是没有或比其它信号少通过另外的逻辑处?;最典型的就是时钟线,...
宽带路由器是什么,有哪些功能作用?.docx
说起NFC是什么?NFC其实就是即近距离无线通讯技术,那么关于NFC功能是什么呢?现在手机中很多内置NFC芯片。NFC是Near Field Communication缩写,即近距离无线通讯技术。NFC是一种非接触式识别和互联技术,可以在移动...
《你的团队起作用吗?》是一份专注于团队管理和优化的培训资料,旨在帮助读者理解和提升团队效能。这个培训文档包含了多个部分,分别针对不同的学习需求和应用场景,为那些对团队管理感兴趣的人提供实用的指导。 ...
windows端口 端口分析 端口解决方案 端口 端口关闭方法 一个对windows 的端口进行详细分析说明的方法,并对一些病毒可能采限的攻击方法进行解说
这种行为在处理可能有副作用或者昂贵计算的表达式时尤为重要。例如,在 `if(str != null && !str.equals(""))` 中,如果 `str` 是 `null`,`str.equals("")` 就不会执行,从而避免了潜在的 `NullPointerException`。...
独立光伏系统中蓄电池的作用及选择 独立光伏系统中蓄电池的作用及选择
什么是股权?他的作用是什么?.doc
太阳电池检测器的作用在于评估这些电池的效率,确保它们能够最大化地捕获和转换太阳能。 跟踪太阳光的系统,称为太阳追踪器(Sun Tracker),是提高太阳能电池板发电效率的一种方法。这种设备能够自动调整电池板的...
2. 变量作用域:变量的作用域应尽量缩小,以避免变量的滥用和代码的混乱。 3. 变量类型:变量类型应明确,避免使用泛型变量。 4. 特别情况:对于一些特殊情况,如常量、宏定义、枚举类型等,需要遵守特殊的命名规则...
var re = new RegExp("[&?]" + val + "=([^&?]*)", "ig"); return ( (uri.match(re)) ? (uri.match(re)[0].substr(val.length + 2)) : null ); } }; window.onload = function () { document....
软件测试有它的验证作用,就是人们经常说的VValidation确认产品是否真正满足用 有人简单回答说,软件测试就是发现缺陷。但软件测试仅仅就是为了发现缺陷吗?绝对不是。 软件测试有它的验证作用,就是人们经常说的...
本文主要介绍了有关三极管基极下拉电阻接地的作用是什么。
的高能和低能现象学之间的相互作用,这违反了希格斯玻色子与标准玻色子的相互作用。 为此,我们使用有效的场论方法,并考虑所谓的通用理论中出现的所有六维算子。 我们计算了它们对电偶极矩和<math> <mi> B ...