实用的进制、位运算及其一些应用

我们都知道计算机中数据存储处理的基础是二进制,这个是计算机读写用的,我们常用的是十进制,有时我们为了方便的表示计算机内的数据,所以又引入登录十六进制。这里提醒大家的是普通计算机中能进行计算的有且仅有二进制数据,其他进制数据都是转换成二进制后再处理的。

 实用的进制、位运算及其一些应用_设计制作_MEMS/传感技术

我们还知道在很多语言编程中提供位运算,比如C/     C++       python   或者     java   script, 那到底进制或者位运算在实际工作中会有哪些应用呢?

这里用例子进行一下介绍:

我们经常遇见诸如 有M组IO口,每个IO口有多种状态,比如有的只有开、关(或者说电平高、低2种状态),有的有3种状态,甚至有的还有更多状态值,如何有效的在资源有限情况下存储这M组IO的状态信息,这时一般就会用到二进制及位运算了。

比如 第一个IO只有2种状态,则只需要一个二进制位就可以对应保存信息,

第二个IO有3种信息,则至少要2位(最多可以保存4种状态)

第M个IO口有n种信息,则需要有N位,其中2^(N-1)

这样就需要1+2+....+N位 的二进制数来保存相应信息。

我们可以规定IO口对应二进制数顺序是从低位到高位,即第一个IO对应的放置在低位,则对应状态数据的产生算法为:

REC(n)= REC(n-1) | I(n) << L(n-1)

其中REC(n)表示1~n个IO口整个的状态数据

I(n)是第n个IO口的状态数据

L(n-1)是前面n-1个IO口数据一共需要的数据位数,即前面的1+2+....+N

而I(n)的检出算法则是:

I(n)= (REC(n)>>L(n-1)) & K(n)

其中K(n)是I(n)对应有效二进制位数各位置1的值,比如I(n)对应1位有效,则K(n)=1,如果I(n)对应2为有效,则K(n)=0x3 ,即I(n)有j位有效值,则为2^j-1

注意:

1. | 是按位或运算,&是按位与运算

2. 对于I(n)的检出还需要要根据I(n)实际的取值范围进行过滤,滤除不符合的情况。

比如有一个用到3个IO的采集状态程序,第一个IO对应一个开关有2种状态,所以占1bit

第二个IO是采集     步进电机   状态,有停止、90度、180度、270度这样4个状态,则需要2bit

地三个IO是采集温度范围的,有0-100度,每10度对应一个值,有10个值(0,1,...9),则需要4bit

这样最后表示状态的数据是一个7bit的二进制数K,要检出各个IO对应值:

第一个IO: I(0)=K|0x1

第二个IO: I(1)=(K>>1)|0x3

第三个IO: I(2)=(K>>3)|0xF (因为是存储数据再检出,所以不需要过滤) ,如果是程序产生的,则还需要过滤,就是判断I(2)<10。

28
170
0
61

相关资讯

  1. 1、知否:明兰的身边人里,唯独她的结局最好,怪不得说傻人有傻福3611
  2. 2、TVB花旦李施嬅晒与陈山聪父子合照,网友称:像极了一家三口697
  3. 3、冯绍峰结婚了,前女友各忙各的:林允亮相金鹰节,倪妮低调做公益890
  4. 4、她因长得丑被导演嫌弃,曾去相亲,如今嫁入豪门生活幸福1958
  5. 5、他们是因戏结缘的夫妻,婚后AA制惹热议,一家三口幸福成这样?2765
  6. 6、网友偶遇翟天临辛芷蕾逛迪士尼,被发现后两人从员工通道迅速逃离2263
  7. 7、50岁翁虹才是冻龄女神,小18岁女星跟她合照,颜值瞬间被吊打4179
  8. 8、贾玲&amp;amp;沈腾复古造型,魔性摇摆1163
  9. 9、《狄仁杰》点映大获好评胡东被赞全新突破1702
  10. 10、《一夜惊喜》9天夺1.42亿成七夕档最大赢家607
全部评论(0)
我也有话说
0
收藏
点赞
顶部