资源描述:
《c语言的几种位操作运算》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C语言的几种位操作运算在汇编语言中有直接对位进行操作的指令,如置位、复位、位取反、测试某一位等,这对于硬件操作十分方便,在C语言中尽管也提供了一些位操作手段,如按位与、按位或、按位取反等,但它们是对一个字节进行操作,如要对具体的一位操作,仍旧不方便,以下给出了一些函数,可以模仿汇编语言的一些位操作功能。#defineucharunsignedchar/*测试变量某一位是否为‘1’,是返回真,否返回假,num为待测试的数,bit为位数,其值从0到7,下同*/ucharbittest(ucharnum,ucharbit){if(num>>b
2、it&0x01==1)return1;elsereturn0;}ucharbitclr(ucharnum,ucharbit)/*清除某一位*/{ucharbit_value[]={1,2,4,8,16,32,64,128};returnnum&~bit_value[bit];}ucharbitset(ucharnum,ucharbit)/*设置某一位*/{ucharbit_value[]={1,2,4,8,16,32,64,128};returnnum
3、bit_value[bit];}ucharbitcpl(ucharnum,uchar
4、bit)/*取反某一位*/{ucharbit_value[]={1,2,4,8,16,32,64,128};if(num>>bit&0x01==1)returnnum&~bit_value[bit];elsereturnnum
5、bit_value[bit];}/*以下主程序演示,调用时,可以直接给出数值,也可以给出变量名*/voidmain(void){ucharxx=0xfe;xx=bitset(xx,0);printf("Thesetoutis%x",xx);printf("Theclroutis%x",bitclr(255
6、,0));printf("Thetestoutis%x",bittest(0xff,0));printf("Thecploutis%x",bitcpl(0x00,7));}