C语言的几种位操作运算

来源:本站
导读:目前正在解读《C语言的几种位操作运算》的相关信息,《C语言的几种位操作运算》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《C语言的几种位操作运算》的详细说明。
简介:简单介绍C语言的几种位操作运算。

在汇编语言中有直接对位进行操作的指令,如置位、复位、位取反、测试某一位等,这对于硬件操作十分方便,在C语言中尽管也提供了一些位操作手段,如按位与、按位或、按位取反等,但它们是对一个字节进行操作,如要对具体的一位操作,仍旧不方便,以下给出了一些函数,可以模仿汇编语言的一些位操作功能。

#define uchar unsigned char

/*测试变量某一位是否为‘1’,是返回真,否返回假,num为待测试的数,bit为位数,其值从0到7,下同*/

uchar bittest(uchar num,uchar bit)

{ if(num>>bit&0x01==1)

return 1;

else

return 0;

}

uchar bitclr(uchar num,uchar bit) /*清除某一位*/

{

uchar bit_value[]={1,2,4,8,16,32,64,128};

return num&~bit_value[bit];

}

uchar bitset(uchar num,uchar bit) /*设置某一位*/

{

uchar bit_value[]={1,2,4,8,16,32,64,128};

return num|bit_value[bit];

}

uchar bitcpl(uchar num,uchar bit) /*取反某一位*/

{

uchar bit_value[]={1,2,4,8,16,32,64,128};

if(num>>bit&0x01==1)

return num&~bit_value[bit];

else

return num|bit_value[bit];

}

/*以下主程序演示,调用时,可以直接给出数值,也可以给出变量名*/

void main(void)

{

uchar xx=0xfe;

xx=bitset(xx,0);

printf("The set out is %xn",xx);

printf("The clr out is %xn",bitclr(255,0));

printf("The test out is %xn",bittest(0xff,0));

printf("The cpl out is %xn",bitcpl(0x00,7));

提醒:《C语言的几种位操作运算》最后刷新时间 2024-03-14 00:59:47,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《C语言的几种位操作运算》该内容的真实性请自行鉴别。