首页 > 代码库 > 8亿个整数存储
8亿个整数存储
用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亿个整数存储
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。