嵌入式工作 (常用算法)

嵌入式工作 (常用算法)

1、define 将某个Bit位 进行置位或置零

#include <stdio.h> // 头文件
#define  BIT3 (0x1<<3) // 0x01=0001  Bit3=1000

#define  set_bit_3(a)  a|=BIT3 //bit8位是 bit0-bit7  
//|是按位或 及两个相应的二进制位中只要有一个为1,该位的结果值为1

#define  clear_bit3(a) (a &= ~BIT3)//先取反再按位与
//&是按位与 及如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
//~是取反,用来对一个二进制数按位取反,即将0变1,将1


int main()
{
          
   
	unsigned char a = 0x00;
	unsigned char b = 0xff;
	set_bit_3(a);
	clear_bit3(b);
	printf("set_bit_3=%#X
",a);
	printf("clear_bit3=%#X
", b);
	//  %x 即按十六进制输出,英文字母小写,右对齐。
	//  %#表示的输出提示方式,如果是8进制,在前面加0,如果是十进制,不加任何字符,如果是十六进制,会加上0x
}

2、求字符长度

void printf_bit()
{
          
   
	unsigned char date[10] = {
          
    0 }; // 字符数组   
    //char占1个字节 字符数组date 字节数为1X10=10
 
	unsigned char* pdate = date; 
    // 指针变量在内存中占四个字节(32位机器上)
 
	char* pStr = "Succeeded!";
   // 指向一个字符串常量 
	printf("%d
 %d
 %d
 %d
",sizeof(date[0]), sizeof(date), sizeof(pdate), strlen(pStr));
 
}
经验分享 程序员 微信小程序 职场和发展