这一句是什么意思,请高手分析一下

cpp99 2004-04-30 04:50:33
int block_write(int dev,long *pos,char *buf,int count)
{
.....
int block =*pos >>BLOCK_SIZE_BITS; //这一句是什么意思,请高手分析一下
int offset =*pos & (BLOCK_SIZE-1); //这一句是什么意思,也请高手分析一下
.....
}
...全文
183 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
caizhiyi123 2004-05-03
  • 打赏
  • 举报
回复
1。显然,*pos 是long型,计算机中的数都以二进制表示,*pos >>BLOCK_SIZE_BITS是将*pos的二进制形式右移BLOCK_SIZE_BITS位,相当于十进制数long型的*pos除以2的BLOCK_SIZE_BITS次方,后再赋值给int型的block(不致于有数据切割)。
2。按位与也必须是在二进制情况下进行,将*pos (long型数,在32-bit系统中用4bytes表示,占32bits)和BLOCK_SIZE-1(未标明,应该是这块内存区的大小)按位与,得到的二进制数只是内部的,系统会将其转化为十进制数,再赋给int型的offset。得到的应该是其相对于内存区的偏移量。
iori40995 2004-05-02
  • 打赏
  • 举报
回复
字面上的意义很简单,就是把pos的内存地址的二进制表示的值右移BLOCK_SIZE_BITS,但是有什么用处就很难讲了。
iwebet 2004-04-30
  • 打赏
  • 举报
回复
看不懂
doolin 2004-04-30
  • 打赏
  • 举报
回复
第一句: 把pos所指向内存的值右移BLOCK_SIZE_BITS位,负给block
第二句: ...................和BLOCK_SIZE-1相与.............
zhouqingyuan 2004-04-30
  • 打赏
  • 举报
回复
>>移位运算符号
&与运算
掐死温柔 2004-04-30
  • 打赏
  • 举报
回复
第一句是把*pos >>BLOCK_SIZE_BITS的接收值地址给BLOCK

下同,

学习中...
内容概要:本文围绕可变桨叶四旋翼无人机的规范控制与点对点运动模拟展开,重点研究优化推力分配策略在翻转动作中的应用与性能比较。通过Matlab代码实现,构建了四旋翼动力学模型,并设计了多种控制算法以实现精确的姿态调整与轨迹跟踪。研究对比了不同推力分配方案在执行高机动性翻转动作时的稳定性、能耗效率与响应速度,旨在提升无人机在复杂飞行任务中的动态性能与控制精度。该仿真研究为无人机飞控系统的设计与优化提供了理论依据和技术支持。; 适合人群:具备一定自动控制理论基础和Matlab编程能力,从事无人机控制、飞行器动力学或机器人系统研究的科研人员及研究生。; 使用场景及目标:① 实现四旋翼无人机在三维空间中的精确点对点运动控制;② 对比分析不同推力分配策略在执行翻转等高难度动作时的控制效果与能耗表现,优化飞行性能;③ 为无人机自主飞行、特技飞行及复杂环境下的机动控制提供算法验证平台。; 阅读建议:此资源以Matlab仿真为核心,建议读者结合相关控制理论知识,深入理解代码实现细节,重点关注动力学建模、控制律设计与推力分配模块。在学习过程中,应动手调试参数,复现文中翻转动作的仿真结果,并尝试拓展至其他复杂飞行任务,以加深对无人机控制机理的理解。

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧