前段时间有位控友发了个求助帖:想计算一个存储字节2进制表示时有多少1和0,以计算当前导通点的数量。
如2# 1100 0011有4个“1位”,4个“零位”。
当时没多想,觉得编个小库程序,将各种数字分类来计算出“1位”的数量,事后想想这样编写的话,程序太过庞大,需要分类出256个数字,工程量不小。
当时有一位大神(貌似是版主大哥)提出移位循环一说,小弟还不太理解,今晚特意研究一下。
不多说,上程序
说明:程序循环8次(计算一个字节的“1位”数量),每次循环中,移位循环一次,移位的最后一位赋值在SM1.1,若SM1.1置1,则VB10自增1。
通过循环和移位的组合,计算出1位的数量,调试成功。
小弟觉得很有用,感谢大神(版主)的提醒,特发程序和大家探讨一下。