`

c实现bitmap

阅读更多
直接上代码.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX 8972654 //随便设定的数
#define SHIFT 5
int bitmap[1 + MAX/32];

int setbit(unsigned int x);
int clearbit(unsigned int x);
void print_map();
void print_bit(int offset, int i);

int 
main(int argc, char *argv[]){
	if(argc < 2){
		printf("argc must greater than 1\n");
		return 1;
	}
	
	unsigned x = (unsigned)atoi(argv[1]);
	memset(bitmap, 0, sizeof(bitmap));

	if(setbit(x)){
		print_map();

		if(clearbit(x))
			print_map();
	}
	
	return 0;
}

int
setbit(unsigned int x){
	if(x > MAX || x == 0){
		printf("input should greater than 0\n");
		return 0;
	}else{
		bitmap[(x - 1) >> SHIFT] |= (1 << ((x - 1) & 31));
		return 1;
	}
}

int
clearbit(unsigned int x){
	if(x > MAX || x == 0){
		printf("input should greater than 0\n");
		return 0;
	}else{
		bitmap[(x - 1) >> SHIFT] &= ~(1 << ((x - 1) & 31));
		return 1;
	}
}

void
print_map(){
	int i;
	for(i = 0; i < (1 + MAX/32); i ++){
		print_bit(bitmap[i], i);	
	}
}

void
print_bit(int offset, int i){
	int j;
	for(j = 0; j < 32; j ++){
		if(offset & (1 << j)){
			printf("%d\n", i * 32 + j + 1);				
		}
	}
}
分享到:
评论

相关推荐

    Bitmap方法C语言实现

    Bitmap方法C语言实现,支持插入、删除和查找功能。

    bitmap实现测试

    bitmap是个省空间的数据结构,我的c实现

    C 语言实现的Python扩展模块bitmap.zip

    "C 语言实现的Python扩展模块bitmap.zip"就是这样一个案例,它通过C语言编写了一个Python扩展模块,用于处理位图数据,提供更高效、底层的数据操作功能。 位图(Bitmap)是一种常见的图像数据格式,它存储的是像素...

    C# Bitmap转RGB32(NI)

    这可以通过LockBits和Marshal.Copy实现,以提高性能。 ```csharp Rectangle rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height); BitmapData originalData = bitmap.LockBits(rect, ImageLockMode.ReadOnly, ...

    yuv转bitmap的动态库.so

    动态库.so文件提供了一个预编译的C或C++实现,用于高效地完成YUV到Bitmap的转换,这可以显著提高性能,因为原生代码运行在硬件级别的处理器上,相比于Java代码更加快速。 为了在Android应用中使用这个动态库,我们...

    Android Drawable、Bitmap、byte、灰度 转换

    c.drawBitmap(bmpOriginal, 0, 0, paint); return bmpGrayscale; } ``` 通过以上方法,开发者可以灵活地在Android应用中处理各种图像资源,实现不同场景下的需求,如图片缩放、格式转换、灰度化等。这对于提升...

    DrawBitmap-20200222.rar

    在本文中,我们将深入探讨如何使用GDI(Graphics Device Interface)技术在MFC(Microsoft Foundation Classes)对话框中显示位图文件,特别是通过`BitBlt()`函数来实现这一过程。`BitBlt()`是GDI中一个非常重要的...

    C 语言两步实现 RAW 和 BMP 图片格式转换

    C 语言实现 RAW 到 BMP 的转换主要涉及理解两种格式的文件结构,处理 RAW 数据并构造 BMP 文件头。这个过程需要一定的图像处理基础知识和文件操作经验。通过阅读和理解 `RAW_to_BMP.c` 的源代码,可以加深对这一过程...

    BMP(Bitmap)生成器,纯C++实现由数组生成位图

    在本文中,我们将深入探讨如何使用纯C++语言来生成BMP文件,同时也会讲解BMP格式的基本结构。 BMP文件的基本结构包含以下几个部分: 1. **文件头**(File Header):这是BMP文件的第一个部分,包括14个字节,用于...

    Android中利用C++处理Bitmap对象的实现方法

    因此,使用 C++ 语言来处理 Bitmap 对象是非常必要的。在本文中,我们将讨论如何将 Bitmap 对象传递给 C++ 层,并在 C++ 层中对其进行处理。 在 Android 中,Bitmap 对象是图像处理的基础,但是 Java 层的 Bitmap ...

    简析Bitmap文件格式

    BMP文件格式是Windows操作系统中使用的一种图像文件格式,其全称为BitMaP,它支持多种颜色深度。BMP图像可以分为设备相关位图(DDB)和设备无关位图(DIB),DIB格式是目前主流的BMP格式,具有良好的兼容性。BMP文件...

    android Bitmap 图像特效处理

    ### Android Bitmap 图像特效处理 #### 一、概述 在Android开发过程中,图像处理是一项非常重要的功能,尤其是在需要实现各种视觉效果的应用场景中。本文主要介绍如何利用Android平台提供的工具来实现图片的特效...

    Ch2_Bitmap Functions.rar_builder_ch2_bitmap functions_win api C+

    C++Builder是一款集成开发环境(IDE),它基于C++语言,提供了一套完整的工具来构建Windows应用程序。在这个项目中,我们将重点讨论如何在C++Builder环境下使用Windows API来操作位图。 1. **Windows API与Bitmap**...

    BMP.rar_bitmap read c source_bmp 读写_bmp文件_c bmp_写bmp

    压缩包中的"BMP.c"文件应该包含了实现这些操作的C语言代码。"www.pudn.com.txt"可能是提供源代码的网站信息,可能包含一些关于代码的说明或版权信息。 理解BMP文件格式和如何用C语言进行读写操作对于进行图像处理...

    数据结构之位图(bitmap)详解

    位图(Bitmap)是一种重要的数据结构,广泛应用于索引、数据压缩以及各种算法优化。它的核心概念是用二进制位来...- 《C实现bitmap位图》://www.jb51.net/article/54438.htm - 武森《浅谈信息学竞赛中的“0”和“1”》

    libjpeg库压缩Bitmap

    在Android开发中,为了节省存储空间和网络传输的带宽,常常需要对Bitmap图像进行压缩。...不过,需要注意的是,由于涉及到跨语言和跨平台的调用,调试和错误处理可能会相对复杂,开发者需要具备一定的C/C++和JNI知识。

    C语言实现的bitmap位图代码分享

    事实上,我们是用每一个 元素表示一个32位的二进制字符串,这样这个元素可以保留相邻32个号码是否存在的信息,数组范围就下降到10000000/32了.例如对于号码 89256,由于...int bitmap[1 + N / WORD]; /* * 置位函数——用

    android view转Bitmap生成截图的方法

    下面将详细介绍三种不同的方法来实现 Android View 转 Bitmap 生成截图。 第一种方法:使用 DrawingCache 通过使用 View 的 buildDrawingCache() 方法,可以获取 View 的缓存视图(Bitmap)。这方法适用于 View ...

    Teapot(bitmap).zip_Teapot_opengl 画bitmap_opengl茶壶_teapot.C_茶壶

    在OpenGL中,实现茶壶的绘制通常涉及到构建它的几何模型,这可能包括定义顶点、法线和纹理坐标。 `teapot.c` 文件很可能是包含绘制茶壶代码的源代码文件。在C语言中,这个文件可能会使用OpenGL的函数库来生成茶壶的...

    binary_bitmap.zip_binary_binary image_bitmap_image binary_made

    2. BIN.C:这是一个C语言源代码文件,很可能是实现二值化算法的程序。开发者可能定义了函数,接收BMP图像作为输入,应用二值化算法,并生成一个新的二进制图像。 3. www.pudn.com.txt:这可能是一个链接到资源或...

Global site tag (gtag.js) - Google Analytics