📄 bitop.c
字号:
/***********************************************************************************
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -