加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 从二进制数中获取最后5个二进制位?

发布时间:2020-12-16 10:44:01 所属栏目:百科 来源:网络整理
导读:我有一个二进制数字(例如111001001).我想获得最后5位数(01001).我怎样才能做到这一点?我想将每个数字存储到arrray然后用for循环获取值.但还有更好的方法吗? 解决方法 您可以通过屏蔽获得最后5位: x = x 0x1f; 如果你想处理这些位中的每一位,那么你可以在
我有一个二进制数字(例如111001001).我想获得最后5位数(01001).我怎样才能做到这一点?我想将每个数字存储到arrray然后用for循环获取值.但还有更好的方法吗?

解决方法

您可以通过屏蔽获得最后5位:

x = x & 0x1f;

如果你想处理这些位中的每一位,那么你可以在一个循环中单独测试它们,例如

for (i = 0; i < 5; ++i)
{
    if (x & (1 << i))  // if bit i is set
    {
        // do something for bit i = 1
    }
    else
    {
        // do something else for bit i = 0
    }
}

(注意:在这种情况下不需要先屏蔽.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读