1. 程式人生 > >實現對一個8bit資料指定位(例如第n位)的置0或置1操作

實現對一個8bit資料指定位(例如第n位)的置0或置1操作

<span style="color:#33ff33;">/*
*功能:實現對一個8bit資料(unsigned char型別)的
*	   指定位(例如第n位)的置0或置1操作,並保持其他數
*	   據不變。
*函式原型:
*		void bit_set (unsigned char *p_data,
*               unsigned char position,int flag)
*函式引數說明:
*		p_data是指定的源資料,position是指定位(取值範圍1~8);
*flag表示是置0還是置1操作。
*/</span>
#include<stdio.h>
void bit_set (unsigned char *p_data,unsigned char position,int flag)
{
	if(flag)
	{
		*p_data |= 0x01<<(position-1);
	}
	else
	{
		*p_data &= ~(0x01<<(position-1));
	}
}
int main()
{
	char ch = 63;
	bit_set(&ch,3,1);
	printf("%d\n",ch);
	return 0;
}