PHP中使用BigMap例項

2022-10-06 11:12:13 字數 1231 閱讀 1181

php

//所謂的bit-map就是用乙個bit位來標記某個元素對應的value, 而kxutwxley即是該元素。由於採用了bit為單位來儲存資料,因此在儲存空間方面,可以大大節省。

/*若 n =1 ; 申請記憶體空間為 int a[2] ;

假設需要排序或者查詢的總數n=10000000,那麼我們需要申請記憶體空間的大小為int a[1 + n/32],其中:a[0]在記憶體中佔32為可以對應十進位制數0-31,依次類推:

www.cppcns.com1.求十進位制0-n對應在陣列a中的下標: n/32

2.求0-n對應0-31中的數: n%32=m

3.利用移位0-31使得對應32bit位為1: 1由此我們計算10000000個bit占用的空間:

1byte = 8bit

1kb = 1024byte

1mb = 1024kb

占用的空間為:10000000/8/1024/1024mb。

大概為1mb多一些。

*/class bigmap {

//使用兩個位元組儲存

private $mask = 0x1f ;

private $bitsperword = 32 ;

// 移位的位數為5 pow(2,5) = 32

private $shift = 5 ;

// 儲存資料的陣列

public $bitarray = array();

/**$i 對應的數歸零

*/function clearbit($i){

////則將當前byte中的指定bit位取0,&後其他對方陣列bit位必然不變,這就是 1 的妙用

// $i>>shift 這裡相當於 intval($i /32) ;

// $i & $this->mask 這裡相當於 $i % $this->mask ,取餘

@$this->bitarray[$i >> $this->shift] &= ~(1bitarray[$i >> $this->shift] |= (1bitarray[$i >> $this->shift] & (1setbit(30) ;

var_dump($obig->testbit(2)) ;

var_dump($obig->bitarray) ;

echo decb程式設計客棧in($obig->bitarray[0]),"

";

本文標題: php中使用bigmap例項

本文位址:

PHP中使用事務例項

pdo和mysql的寫法不一樣,處理方式一樣 dbhost localhost 3306 mysql伺服器主機位址 dbuser root mysql使用者名稱 dbpass 123456 mysql使用者名稱密碼 conn mysqli connect dbhost,dbuser,dbpass i...

php中使用mysql介紹 PHP中使用MySQL

mysql資料庫的擴充套件 擴充套件庫基本功能相似,用法基本相同,會增加一些新的特性 mysqli擴充套件庫 只能對mysql資料庫操作 pdo擴充套件 可以操作很多態別的資料庫 wamp下修改mysql資料庫密碼 三者在建立連線上的比較 pdo需要四個引數,除了資料庫管理員名稱 密碼 host 還...

VB中使用ASP物件例項

開發步驟 1.新建立activex dll 專案 2.修改project 名稱 3.修改module名稱 4.新增引用 在nt和98下開發時,必須在專案中引用microsoft transaction server type library,在windows 2000下開發,必須引用com serv...