二进制获取指定位的值

-

每个十进制都可以转换为二进制:

3:  0011
8:   1000
15:  1111

如果让二进制的每一位代表一个有具体含义的状态,那么这种存储状态的方式就会大大节省资源。

提供一个十进制的数字怎么获得它的二进制形式指定位置的数字呢?

比如获取15对应二进制的索引为1的状态

1、将15右移1位

0111

2、右移后与1做与运算

01110001
得到
0001

可以写个方法

function valueAtBit(num, bit) {
  return num >> bit & 1;
}

使用:

10 的二进制是 1010
valueAtBit(10, 0); // 0
valueAtBit(10, 1); // 1
valueAtBit(10, 2); // 0
valueAtBit(10, 3); // 1

 

 

 

 

 

-

posted @   古墩古墩  Views(509)  Comments(0Edit  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
历史上的今天:
2018-08-14 vue脚手架 构建豆瓣App 第一天
2018-08-14 我开通博客的第一天
点击右上角即可分享
微信分享提示