码迷,mamicode.com
首页 > 其他好文 > 详细

8亿个整数存储

时间:2014-11-11 18:03:05      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   sp   for   div   log   bs   amp   

用int型存储占 800000000 * 4 / 1000 /1000/ = 3200M = 3.2G

用位数组存储占 3.2G /32 = 100M

#include<stdio.h>
#include "tire.h"
#include "limits.h"


#define BITSLOTS(nb) (nb + CHAR_BIT -1)/CHAR_BIT
#define BITMASK(b) (1 << ((b) % CHAR_BIT))
#define BITSLOT(b) ((b)/CHAR_BIT)
#define BITSET(a,b) ((a)[BITSLOT(b)] |= BITMASK(b))
#define BITCLEAR(a,b) ((a)[BITSLOT(b)] &= ~BITMASK(b))
#define BITTEST(a,b) ((a)[BITSLOT(b)] & BITMASK(b))

int main(int,char**)
{

	char* bitarray = new char[BITSLOTS(1000 * 1000 * 800)];
	for(int i = 0;i< BITSLOTS(1000 * 1000 * 800);i++)
		bitarray[i] = 0;

	for(int i = 0;i< 1000 * 1000 * 800;i++)
	{
		if((i % (1000 * 1000 * 10)) != 0)
		{
			BITSET(bitarray,i);
		}
	}
	
	for(int i = 0;i< 1000 * 1000 * 800;i++)
	{
		if(!BITTEST(bitarray,i))
		{
			printf("i==%d \n",i);
		}
	}
	
	getchar();
	return 0;
}

 

8亿个整数存储

标签:blog   io   ar   sp   for   div   log   bs   amp   

原文地址:http://www.cnblogs.com/kangbry/p/4089950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!