bitmap

简介

base linux-5.4

bitmap

实践

头文件

#include <linux/bitmap.h>

与/或/非/异或/与非操作

void bitmap_test(void)
{
	unsigned long dst, src1, src2;
	unsigned int nbits;

	src1 = 0x2345;
	src2 = 0xff;
	nbits = 12;

	bitmap_and(&dst, &src1, &src2, nbits); // 与操作
	printk("bitmap: 0x%lx and 0x%lx\t = 0x%lx\n", src1, src2, dst);

	bitmap_or(&dst, &src1, &src2, nbits);  // 或操作
	printk("bitmap: 0x%lx or 0x%lx\t = 0x%lx\n", src1, src2, dst);

	bitmap_xor(&dst, &src1, &src2, nbits); // 异或操作
	printk("bitmap: 0x%lx xor 0x%lx\t = 0x%lx\n", src1, src2, dst);

	bitmap_complement(&dst, &src2, nbits); // 非操作
	printk("bitmap: 0x%lx complement\t = 0x%lx\n", src2, dst);

	nbits = 16;
	bitmap_andnot(&dst, &src1, &src2, nbits); // 与非操作
	printk("bitmap: 0x%lx andnot 0x%lx\t = 0x%lx\n", src1, src2, dst);
}

执行后,如下:

置位、清零、填充操作

执行后,如下:

位移操作

执行后,如下:

遍历操作

执行后,如下:

其余操作

执行后,如下:

Last updated

Was this helpful?