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 + -
显示快捷键?