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 %x\n”,xx);
printf(“The clr out is %x\n”,bitclr(255,0));
printf(“The test out is %x\n”,bittest(0xff,0));
printf(“The cpl out is %x\n”,bitcpl(0x00,7));
}
以上是以TC为例编写的主程序,各函数在其它C语言中也一样可用。
总结
以上是生活随笔为你收集整理的c语言 个位,如何才能给C语言增加几个位操作函数的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 解析json数据_Retrofit同时解
- 下一篇: 朵朵糖故事机器人怎么更新_“故事贩卖机”