1.取任意位:#define bit(a,b) ((a>>b)&0x01) // a is the variable while
// b is the bit number 從第0位數起,而不是從第1位數起
2.取十進位制i各位上的數給a[n],
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<
#define clrbit(port,n) (port&=~(1<
#define reverbit(port,n) (port^=(1<
#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
將第二位置
1x |
(1<<2-1)
5.按位異或^:
a、使特定位取反
eg: x=101101 末5
位置1x^(
1<<
(5-1))b
、不引入第三變數,交換兩個變數的值
eg: void swap (int x, int y)
三、應用舉例 1.
將char
型變數迴圈左移k次
a=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
競賽中用到的一些STL
memset a,0,sizeof a 陣列初始化為0 memset b,1,sizeof b 陣列初始化為 1不使用cmp 在上公升序列中找第乙個比k大的 使用cmp 在下降序列中找第乙個比k小的 兩者預設都是從前向後找,lower更靠前,找到的可以等於k bool cmp int a,int b...
php data 函式中用到的一些常量
今天在網上找到了一些,記錄下來留著下次參考 date atom string 原子鐘格式 如 2005 08 15t15 52 01 00 00 date cookie string http cookies 格式 如 mon,15 aug 2005 15 52 01 utc date iso860...
mysql中用到的一些sql語句
檢視資料庫預設配置資訊 show variables 檢視mysql資料庫編碼方式 show variables like character set database 檢視資料庫裡表的編碼方式,同時還能看到該錶使用的儲存引擎資訊 show create table char test 修改資料庫編...