c語言實現bitmap

2021-10-07 04:25:35 字數 1465 閱讀 3872

bit.h 

#ifndef _bit_h_

#define _bit_h_

/** *儲存bitmap的結構體

*儲存的順序從左至右

**/struct _bits;

typedef struct _bits *bits;

/** *獲得bitmap

*@length bitmap的長度

*@return 所有位都初始化為0的bitmap

*/bits bit_new(unsigned int length);

/** *銷毀乙個bitmap

**/void bit_destroy(bits bit);

/** *獲得y乙個bitmap的長度

*@bit 需要獲得長度的bitmap

*@return bit的長度

**/unsigned int bit_length(bits bit);

/** *設定bitmap中相應位置的值

*@bit 待設定的bitmap

*@pos 需要設定的位置

**/void bit_set(bits bit, unsigned int pos, unsigned char value);

/** *設定bitmap中相應位置的值

*@bit 待獲取的bitmap

*@pos 獲取的位置

**/char bit_get(bits bit, unsigned int pos);

#endif /*_bits_h_*/

bit.c

#include "bit.h"

#include #include #include struct _bits ;

bits bit_new(unsigned int length)

memset(new_bits->bits, 0, char_nums);

new_bits->length = length;

return new_bits;

}void bit_destroy(bits bit)

unsigned int bit_length(bits bit)

void bit_set(bits bit, unsigned int pos, unsigned char value)

else

}char bit_get(bits bit, unsigned int pos)

main.c

#include #include "bit.h"

#define len 15

int main(void)

for (i = 0; i < len; i++)

printf("\n");

bit_destroy(bit);

return 0;

}

Go語言實現bitmap演算法

有關bitmap演算法的介紹資料網上很多,這裡不贅述,各種語言的實現也不少,但是go語言版的bitmap不多,本文就來寫乙個go版的bitmap實現。首先建立乙個 bitmap.go 檔案,定義乙個bitmap結構體,再提供一些操作方法。詳細 如下 package bitmap import fmt...

C語言實現memcpy

memcpy和memmove都是c語言中的庫函式,在標頭檔案string.h中,作用是拷貝一定長度的記憶體的內容,他們的作用是一樣的,唯一的區別是,當記憶體發生區域性重疊 的時候,memmove保證拷貝的結果是正確的,memcpy不保證拷貝的結果的正確。程式設計師面試寶典中有例題 對應的原型如下 v...

C語言實現多型

c 中的多型是指 通過基類物件的指標或者基類物件的引用呼叫虛函式 表現更多派生類的特性,但根據c 多型的實現,我們發現這種方法存在一定的空間和效率的折損。不可否認,多型輕鬆解決了很多任務程中遇到的問題,這與 pure c 的解決方法比起來,更為優雅。在考慮移植性上,c 的光芒要蓋過 c 但 c 的多...