基本位運算

2022-10-11 03:00:17 字數 1276 閱讀 3748

1、位基本操作符:

與 &或 |

非 異或 ^

移位 >>、<<

2、應用:

1、判斷乙個數是不是4的次冪

( (x & (x - 1)) == 0 ) && ( (x & 0x55555555) == x)

2、獲取負數

-x = (~x + 1)

3、交換兩個數

int a, b;

a = a ^ b;

b = a ^ b;

a = a ^ b;

4、迴圈移位

(a << k) | ( a >> (32 - k) )

5:位運算實現加減乘除(ps:相對於硬體實現的+-*/效率低很多,放在此處僅僅練習位運算) 

#include #include 

#include

/*a + b

*/int sum(int a, int

b)

returna;}

/*-a

*/int neg(int

a)/*

a - b

*/int sub(int a, int

b)/*

判斷a是不是負數

*/int ispos(int

a)/*

a * b

*/int mul(int a, int

b)

if(!ispos(b))

while

(b)

if(flag)

ans =neg(ans);

return

ans;}/*

a / b

*/int div(int a, int

b)

if(!ispos(b))

inti;

for(i = 31; i >= 0; i = sub(i, 1

))

}if(flag)

ans =neg(ans);

return

ans;

}int

main()

gettimeofday(&etime, null);

printf(

"%ld\n

", etime.tv_sec * 1000 + etime.tv_usec / 1000 - stime.tv_sec * 1000 - stime.tv_usec / 1000

);

return0;

}

view code

UIButton文字位置顯示

按鈕的文字居右 uibutton rightbutton uibutton alloc initwithframe cgrectmake rightbuttonx,0,rightbuttonw frame.size height 如果緊緊設定以下 不會生效 rightbutton.titlelabe...

C基本運算

一 算術運算 1 加法運算 除開能做加法運算,還能表示正號 5 90 2 減法運算 除開能做減法運算,還能表示符號 10 29 3 乘法運算 注意符號,不是x,而是 4 除法運算 注意符號,不是 也不是 而是 整數除於整數,還是整數。1 2的值是0,這個並不是二分之一 5 取餘運算 什麼是取餘 兩個...

opencv Mat 基本運算

mat 是為了與matlab矩陣運算對應而新加的opencv 類,有一些基本的操作,在下邊的 中列出,的資源見 注意mat的行列號是從0開始的 定義矩陣a,b,c mat a,b,c 生成三行四列的全一矩陣 cv 64f表示精度 a mat ones 3,4,cv 64f a mat zeros 3...