编程中用到的一些算法
2010-09-16 16:30
155 查看
1.取任意位:#define BIT(A,B) ((A>>B)&0x01) // A is the variable while
// B is the bit number 从第0位数起,而不是从第1位数起
2.取十进制i各位上的数给a
,
a[0]=i%10;
a[1]=i%100/10;
a[2]=i%1000%100;
3.取反运算
i^=1;//将i取反.
4.
#define SetBit(Port,N) (Port|=(1<<N)) //设置IO某一位
#define ClrBit(Port,N) (Port&=~(1<<N)) //清空IO某一位
#define ReverBit(Port,N) (Port^=(1<<N)) //取反IO某一位
#define GetBit(Pin,N) ((Pin>>N)&0x01) //读取IO某一位
4.端口操作:
#define led1 ( *((u32*)0x42210180) )
5.
位运算
一、
位运算应用口诀
清零取反要用与,
某位置一可用或;
若要取反和交换,
轻轻松松用异或。
二、
移位运算
1.“<<”左移:左边的位将从字头挤掉,右边的空出位补0。左移几位,相当于乘以二的几次方。
2.“>>”右移:右边的位将从字头挤掉,左边空出的位若是正数补0,若是负数,可能补1或补0相当于除以2的几次方。
3.按位与&:
A、清零特定位
eg:x=101101
将第四位清零
X&~(1<<(4-1))
B、取某数中的指定位 eg:X=101101
取第三
X>>(3-1)&1
4.按位或1:
常数某位置1,其它不变
eg:X=101101 将第二位置1
X |(1<<2-1)
5.按位异或^:
A、使特定位取反
eg: X=101101 末5位置1
X^(1<<(5-1))
B、不引入第三变量,交换两个变量的值
eg: void swap (int x, int y)
三、
应用举例
1.将char型变量循环左移K次
a=a<<k | a>>8-k
循环右移K次
a=a>>k | a<<8-k
2.求平均值(不产生溢出),求X、Y的平均值:
(X&Y)+((X^Y)>>1)
3.取模运算:a%(2的n次方)ó
a&(2的n-1次方)
4.判断奇数
(X&1)==1
判断偶数
(X&1)==0
// B is the bit number 从第0位数起,而不是从第1位数起
2.取十进制i各位上的数给a
,
a[0]=i%10;
a[1]=i%100/10;
a[2]=i%1000%100;
3.取反运算
i^=1;//将i取反.
4.
#define SetBit(Port,N) (Port|=(1<<N)) //设置IO某一位
#define ClrBit(Port,N) (Port&=~(1<<N)) //清空IO某一位
#define ReverBit(Port,N) (Port^=(1<<N)) //取反IO某一位
#define GetBit(Pin,N) ((Pin>>N)&0x01) //读取IO某一位
4.端口操作:
#define led1 ( *((u32*)0x42210180) )
5.
位运算
一、
位运算应用口诀
清零取反要用与,
某位置一可用或;
若要取反和交换,
轻轻松松用异或。
二、
移位运算
1.“<<”左移:左边的位将从字头挤掉,右边的空出位补0。左移几位,相当于乘以二的几次方。
2.“>>”右移:右边的位将从字头挤掉,左边空出的位若是正数补0,若是负数,可能补1或补0相当于除以2的几次方。
3.按位与&:
A、清零特定位
eg:x=101101
将第四位清零
X&~(1<<(4-1))
B、取某数中的指定位 eg:X=101101
取第三
X>>(3-1)&1
4.按位或1:
常数某位置1,其它不变
eg:X=101101 将第二位置1
X |(1<<2-1)
5.按位异或^:
A、使特定位取反
eg: X=101101 末5位置1
X^(1<<(5-1))
B、不引入第三变量,交换两个变量的值
eg: void swap (int x, int y)
三、
应用举例
1.将char型变量循环左移K次
a=a<<k | a>>8-k
循环右移K次
a=a>>k | a<<8-k
2.求平均值(不产生溢出),求X、Y的平均值:
(X&Y)+((X^Y)>>1)
3.取模运算:a%(2的n次方)ó
a&(2的n-1次方)
4.判断奇数
(X&1)==1
判断偶数
(X&1)==0
相关文章推荐
- 【编程 C】 对C语言编译初级算法的一些心得---函数(1)
- MTK编程起步——开发中可能用到的一些东西
- 计算机编程中一些重要的算法
- 一些面试用到的编程
- 用到的一些算法收集
- 做算法题编程时的一些总结
- 计算机编程中一些重要的算法
- 编程中用到的一些函数
- VB编程用经常要用到的算法
- 在实现密码学算法的时候用到的一些自创函数以及数据结构
- C#学习,整理一些API类,外挂编程需要用到
- C#学习,整理一些API类,外挂编程需要用到
- 一些基础算法基础编程思维
- TCP/IP端口以及sockets编程的一些问题以及算法一个
- QT QAbstractSocket SocketError和 一些网络编程 用到的值
- 总结 <stdlib.h>头文件 在算法中可能会用到的一些函数
- 计算机编程中一些重要的算法
- windows下C多线程编程用到的一些函数
- MTK编程起步——开发中可能用到的一些东西(转)
- 一些编程会用到的小技巧