利用php数组实现Bitset位处理模块功能
2014-09-10 11:23
253 查看
接上篇,php的bitset模块介绍和安装
利用php的bitset模块可以实现c++的bitset相关功能。但是,在生产环境下需要给线上服务器安装模块是很危险和麻烦的事,所以需要另辟蹊径。
我用php的array数组模拟了bitset的几个主要方法的实现过程,其实就是利用Array的key模拟内存地址,value模地址内容。php的Array还是超级方便的 :)
你可以查看我的github
利用php的bitset模块可以实现c++的bitset相关功能。但是,在生产环境下需要给线上服务器安装模块是很危险和麻烦的事,所以需要另辟蹊径。
我用php的array数组模拟了bitset的几个主要方法的实现过程,其实就是利用Array的key模拟内存地址,value模地址内容。php的Array还是超级方便的 :)
<?php define('CHAR_BIT', 8); /** * bitset操作php实现 * @version:1.0 * @author:Kenny{Kenny.F<mailto:kennyffly@gmail.com>} * @since:2014/05/21 */ class Bitset { private $bitset_data = array(); private $_len = 0; //分配位数组空间 function &bitset_empty($bit=0) { if(!is_numeric($bit) || $bit<0) { echo "argument must be a positive integer"; return False; } $this->_len = $bit; return $this->bitset_data; } //位数组位置$bit上的值置为1 public function bitset_incl(&$bitset_data=array(), $bit=0) { if (!is_numeric($bit) || $bit<0) { echo "Second argument must be a positive integer"; return False; } $bitset_temp = isset($bitset_data[intval($bit/CHAR_BIT)]) ? $bitset_data[intval($bit/CHAR_BIT)] : 0; $bitset_data[intval($bit/CHAR_BIT)] = $bitset_temp | 1 << ($bit % CHAR_BIT); unset($bitset_data); } //判断某个位置bit上的值是否为1 public function bitset_in($bitset_data=array(), $bit=0) { if (!is_array($bitset_data)) { echo "first argument is not a array"; return False; } if ($bit < 0) { return False; } if ($this->_len == 0) { return False; } elseif($bit >= $this->_len*CHAR_BIT){ return False; } elseif ($bitset_data[intval($bit/CHAR_BIT)] & (1 << ($bit % CHAR_BIT))){ return True; } else{ return False; } } }
你可以查看我的github
相关文章推荐
- 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
- 利用Java事件处理机制实现录制、回放功能
- jQuery利用选择器实现功能模块可见性的控制
- 利用Java事件处理机制实现录制、回放功能
- Android: 如何利用Handler处理和发送消息来实现页面刷新的功能
- [转]利用Java事件处理机制实现录制、回放功能
- Android: 如何利用Handler处理和发送消息来实现页面刷新的功能
- Asp.net利用一般处理程序实现文件下载功能
- 利用java反射实现独立模块功能
- 利用Java事件处理机制实现录制、回放功能
- 利用VC和ADO接口编写一个dll模块实现对数据库数据的处理
- 利用Java事件处理机制实现录制、回放功能
- 利用 Aliyun OSS Nginx proxy module 实现OSS 图片处理回写功能
- ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页
- 利用Timer类实现"显示时间"的功能
- 利用ASP实现事务处理的方法(摘)
- 利用ASP实现事务处理的方法
- 利用HttpSessionListener实现网站在线人数统计功能
- 利用HttpSessionListener实现网站在线人数统计功能
- 利用The Pager Tag Library 实现分页功能