bitop.c

来自「一个流量控制仪器的源码」· C语言 代码 · 共 91 行

C
91
字号
/***********************************************************************************
C51 位操作函数库  BitOp.C

MCU 型号: Philips P89C668
时钟频率: 11.0592 MHz           6Clock
开发环境: Keil C51 V7.06	
开发日期: 2003.09.17
程序编写: BaoFang
	
***********************************************************************************/

/*宏uchar定义*/ 
#define uchar unsigned char


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


/*******************************************************************
			测试变量某一位是否为‘1’
函数原型: uchar fnBitTest(uchar ucNumTest,uchar ucBitNum)
功能: 测试变量某一位是否为‘1’
      返回0--否
      返回1--是
变量:ucNumTest为待测试的数
      ucBitNum为位数,其值从 0到7
*******************************************************************/
uchar fnBitTest(uchar ucNumTest,uchar ucBitNum)
{
        if( ucNumTest>> ucBitNum & 0x01 == 1 )

                return 1;

        else

                return 0;
}

/*******************************************************************
			清除某一位
函数原型: uchar fnBitClr(uchar ucNumTest,uchar ucBitNum)
功能: 清除某一位
      返回结果
变量:ucNumTest为待清除的数
      ucBitNum为位数,其值从 0到7
*******************************************************************/
uchar fnBitClr(uchar ucNumTest,uchar ucBitNum)
{

        return ucNumTest & ~uc8Bit_value[ucBitNum];

}


/*******************************************************************
			设置某一位
函数原型: uchar fnBitSet(uchar ucNumTest,uchar ucBitNum)
功能: 设置某一位
      返回结果
变量:ucNumTest为待设置的数
      ucBitNum为位数,其值从 0到7
*******************************************************************/
uchar fnBitSet(uchar ucNumTest,uchar ucBitNum)
{

        return ucNumTest | uc8Bit_value[ucBitNum];

}


/*******************************************************************
			取反某一位
函数原型: uchar fnBitCpl(uchar ucNumTest,uchar ucBitNum)
功能: 取反某一位
      返回结果
变量:ucNumTest为待取反的数
      ucBitNum为位数,其值从 0到7
*******************************************************************/
uchar fnBitCpl(uchar ucNumTest,uchar ucBitNum)
{

        if( ucNumTest>> ucBitNum & 0x01 == 1 )

                return ucNumTest & ~uc8Bit_value[ucBitNum];

        else

                return ucNumTest | uc8Bit_value[ucBitNum];
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?