欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實(shí)現(xiàn)的bitmap位圖代碼分享

 更新時(shí)間:2014年08月28日 10:09:32   投稿:junjie  
這篇文章主要介紹了C語言實(shí)現(xiàn)的bitmap位圖代碼分享,位圖(bitmap)是一種非常常用的結(jié)構(gòu),在索引、數(shù)據(jù)壓縮等方面有廣泛應(yīng)用,需要的朋友可以參考下

事實(shí)上,我們是用每一個(gè) 元素表示一個(gè)32位的二進(jìn)制字符串,這樣這個(gè)元素可以保留相鄰32個(gè)號碼是否存在的信息,數(shù)組范圍就下降到10000000/32了.例如對于號碼 89256,由于89256 mod 32=2789…8,這樣我們應(yīng)該置a[2789]中32位字符串的第8位(從低位數(shù)起)為1.

#define WORD 32
#define SHIFT 5 ////移動(dòng)5個(gè)位,左移則相當(dāng)于乘以32,右移相當(dāng)于除以32取整
#define MASK 0x1F //16進(jìn)制下的31
#define N 10000000
int bitmap[1 + N / WORD];
/*
 * 置位函數(shù)——用"|"操作符,i&MASK相當(dāng)于mod操作
 * m mod n 運(yùn)算,當(dāng)n = 2的X次冪的時(shí)候,m mod n = m&(n-1)
 */
void set(int i) {
 bitmap[i >> SHIFT] |= (1 << (i & MASK));
}
/* 清除位操作,用&~操作符 */
void clear(int i) {
 bitmap[i >> SHIFT] &= ~(1 << (i & MASK));
}
/* 測試位操作用&操作符 */
int test(int i) {
 return bitmap[i >> SHIFT] & (1 << (i & MASK));
}

實(shí)現(xiàn)排序(不能重復(fù)):

int main(void) {
 FILE *in = fopen("in.txt", "r");
 FILE *out = fopen("out.txt", "w");
 if (in == NULL || out == NULL) {
 exit(-1);
 }
 int i = 0;
 int m;
 for (i = 0; i < N; i++) {
 clear(i);
 }
 while (!feof(in)) {
 fscanf(in, "%d", &m);
 printf("%d/n", m);
 set(m);
 }
 printf("abnother");
 for (i = 0; i < N; i++) {
 if (test(i)) {
  printf("%d/n", i);
  fprintf(out, "%d/n", i);
 }
 }
 fclose(in);
 fclose(out);
 return EXIT_SUCCESS;
}

相關(guān)文章

  • C++?Cmake使用詳細(xì)教程(看這一篇就夠了!)

    C++?Cmake使用詳細(xì)教程(看這一篇就夠了!)

    CMake是一個(gè)比make更高級的編譯配置工具,它可以根據(jù)不同平臺、不同的編譯器,生成相應(yīng)的Makefile或者vcproj項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于C++?Cmake使用的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • OpenCV使用鼠標(biāo)響應(yīng)裁剪圖像

    OpenCV使用鼠標(biāo)響應(yīng)裁剪圖像

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)鼠標(biāo)響應(yīng)裁剪圖像,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • C語言中的函數(shù)指針學(xué)習(xí)筆記

    C語言中的函數(shù)指針學(xué)習(xí)筆記

    這篇文章主要介紹了C語言中的函數(shù)指針的一些學(xué)習(xí)知識點(diǎn)記錄,文中作者整理了一些比較interesting的函數(shù)指針用法,需要的朋友可以參考下
    2016-04-04
  • C++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng)

    C++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語言深入了解自定義數(shù)據(jù)類型的使用

    C語言深入了解自定義數(shù)據(jù)類型的使用

    這篇文章主要給大家介紹了關(guān)于C語言自定義數(shù)據(jù)類型的結(jié)構(gòu)體、枚舉和聯(lián)合的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C語言完全平方整數(shù)的判斷

    C語言完全平方整數(shù)的判斷

    大家好,本篇文章主要講的是C語言完全平方整數(shù)的判斷,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C語言 Freertos的遞歸鎖詳解

    C語言 Freertos的遞歸鎖詳解

    這篇文章主要為大家詳細(xì)介紹了C語言的遞歸鎖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • VC中CDC、HDC、pDC區(qū)別與聯(lián)系及相互轉(zhuǎn)換

    VC中CDC、HDC、pDC區(qū)別與聯(lián)系及相互轉(zhuǎn)換

    這篇文章主要介紹了VC中CDC、HDC、pDC區(qū)別與聯(lián)系及相互轉(zhuǎn)換的方法,非常的詳細(xì),有需要的小伙伴可以參考下,希望對大家學(xué)習(xí)VC能夠有所幫助。
    2015-11-11
  • C++中map和set的簡介及使用詳解

    C++中map和set的簡介及使用詳解

    本文主要介紹了C++中map和set的簡介及使用詳解,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • OpenGL實(shí)現(xiàn)3D空間中移動(dòng)圖像

    OpenGL實(shí)現(xiàn)3D空間中移動(dòng)圖像

    這篇文章主要為大家詳細(xì)介紹了OpenGL實(shí)現(xiàn)3D空間中移動(dòng)圖像,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08

最新評論