u16 bitget(u16 bitfield)
{
if (bitfield == 0)
{
return 16;//返回16就是根本没有一个寄存器标志位置位
}
else
u16 i;
for (i = 0; i < 15; i++)
{
if (bitfield & (1 << i))//在某一位 置1的时候,break,并且返回该位
break;
}
return i;
}
如何获取标志位寄存器的1出现在哪个位上
最新推荐文章于 2025-03-31 19:43:40 发布
本文介绍了一种用于查找16位寄存器中已置位标志位的算法。当寄存器的某一位被设置时,算法通过位运算遍历每一位来确定具体是哪一位被置位,并返回该位的位置。如果没有任何一位被置位,则返回16,表示没有找到置位的标志位。
4952

被折叠的 条评论
为什么被折叠?



