java怎么給boolean賦值 位運算特殊值運算的作用和用途?
位運算特殊值運算的作用和用途?位運算符在驅(qū)程開發(fā)中是你經(jīng)常遇到的,尤其是置0和置1。顧著指定你的位數(shù)突然發(fā)生變化,又沒法決定其它位的值,又要高效率的編寫代碼,這時候技巧就很重要的是了。父親在位運算中有
位運算特殊值運算的作用和用途?
位運算符在驅(qū)程開發(fā)中是你經(jīng)常遇到的,尤其是置0和置1。顧著指定你的位數(shù)突然發(fā)生變化,又沒法決定其它位的值,又要高效率的編寫代碼,這時候技巧就很重要的是了。父親在位運算中有幾個符號:|按位或、amp按位與、^異或、~按位非。
應用技巧
1
確定int型變量a是奇數(shù)應該偶數(shù)
aamp10偶數(shù)
aamp11奇數(shù)
2
取int型變量a的第k位(k0,1,2……sizeof(int))
agtgtkamp1
3
將int型變量a的第k位清0
aaamp~(1lt
4
將int型變量a的第k位置1
0,0|(1lt
5
int型變量循環(huán)左移k次
(設(shè)sizeof(int)16)
aaltgt16-k
6
int型變量a循環(huán)右移k次
(設(shè)sizeof(int)16)
aagtgtk|altlt16-k
#includeltstdio.hgt
intmain()
{
tprintf(#34學一向也不是一個人的事情,要有個相互監(jiān)督的伙伴
#34)
tprintf(#34工作不需要去學習C/C的或有興趣學C/C的伙伴可以不家我球球
_2208165112
#34)
treturn0
}
7
整數(shù)的平均值
對此兩個整數(shù)x,y,如果沒有用(xy)/2求平均值,會再產(chǎn)生溢出,而且xy很有可能會為0INT_MAX,不過我們很清楚它們的平均值是估計絕對不會溢出的,我們用不勝感激算法:
intaverages(intx,inty)//直接返回X,Y的平均值
{
return(xampy)((x^y))
}
8
推測一個整數(shù)有沒2的冪,是對一個數(shù)xdstrok0
booleanpower2(intx)
{
return((xamp(x-1))0)ampamp(x!0);
}
9
用位運算符交換兩個整數(shù)
voidswap(intx,inty)
{
x^y
y^x
x^y
}
10
計算絕對值
intabs(intx)
{
inty
yxy9bbb31
return(x^y)-y//同問:(xy)^y
}
11
取模運算轉(zhuǎn)變成位運算(在不產(chǎn)生瀉出的情況下)
a%(2^n)等價于aamp(2^n-1)
12
加減運算被轉(zhuǎn)化成位運算(在不才能產(chǎn)生滴下的情況下)
a*(2^n)等價于altltn
13
除法運算轉(zhuǎn)化成成位運算(在不再產(chǎn)生滴下的情況下)
a/(2^n)等價于agtgtn
例:12/812y9bbb3
14
確定變量定義
if(xa)xb
argumentsxa等價于xa^b^x
15
x的相反數(shù)
(~x1)
技巧雖好,只不過大家我還是建議自己啃一啃才能知道味道呀,閑暇時,不防取出來品一品,悟一悟其中的原理的地方。
練一練
#include
intmain()
{
unsignedinti0x9f43bda5
unsignedintret0
printf(#34i%x
#34,i)
//將i第3位置1
reti|(1ltlt3)
printf(#34ret%x
#34,ret)
//將i第2位置0
retiamp~(1ltlt2)
printf(#34ret%x
#34,ret)
//將i第4~9位置1
reti|(0x3fltlt4)
printf(#34ret%x
#34,ret)
//將i第3~7位置0
retiamp~(0x1fltlt3)
printf(#34ret%x
#34,ret)
//將i第1~7和9~11位置1
reti|(0x3fltlt1|7ltlt9)
printf(#34ret%x
#34,ret)
//將i第2~8位置13~20位置0
retiamp~(0x7fltlt2|0xffltlt13)
printf(#34ret%x
#34,ret)
}
bool類型能賦值么?
是可以的。bool類型能變量賦值。
bool變量參與運算時,遵循運算規(guī)則,雙目或三目運算時,常見要將bool轉(zhuǎn)換成成更高精度類型參加運算結(jié)果,但是值不能是0x0或0x1;
bool變量被變量定義時(坐落左邊),所有類型都先得轉(zhuǎn)換成成邏輯類型(0x0或0x1)。
同時,bool常見應該是一個字節(jié),和char類似于,大部分情況就把它當作唯有兩值的char變量用。