欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當前位置:主頁 > 軟件編程 > C語言 >

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

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

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

#define WORD 32
#define SHIFT 5 ////移動5個位,左移則相當于乘以32,右移相當于除以32取整
#define MASK 0x1F //16進制下的31
#define N 10000000
int bitmap[1 + N / WORD];
/*
 * 置位函數(shù)——用"|"操作符,i&MASK相當于mod操作
 * m mod n 運算,當n = 2的X次冪的時候,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));
}

實現(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;
}

上一篇:C語言實現(xiàn)的統(tǒng)計素數(shù)并求和代碼分享

欄    目:C語言

下一篇:MFC控件之CListCtrl的應(yīng)用實例教程

本文標題:C語言實現(xiàn)的bitmap位圖代碼分享

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3445.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負任何責任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有