位運(yùn)算符的運(yùn)算規(guī)則 c語言中的位運(yùn)算符中‘按位取反’是怎么運(yùn)算的?
c語言中的位運(yùn)算符中‘按位取反’是怎么運(yùn)算的?使用~位求反時(shí),計(jì)算機(jī)將對操作數(shù)對應(yīng)的二進(jìn)制表達(dá)式的每一位求反,求反后得到的值就是~位求反的結(jié)果。例如,如果計(jì)算機(jī)是32位的,則下一步是計(jì)算~5的值,計(jì)算
c語言中的位運(yùn)算符中‘按位取反’是怎么運(yùn)算的?
使用~位求反時(shí),計(jì)算機(jī)將對操作數(shù)對應(yīng)的二進(jìn)制表達(dá)式的每一位求反,求反后得到的值就是~位求反的結(jié)果。例如,如果計(jì)算機(jī)是32位的,則下一步是計(jì)算~5的值,計(jì)算過程如下:5的二進(jìn)制表達(dá)式是:1000000000000000101,執(zhí)行~operation,即在~5:111111111101010之后,即結(jié)果是-6。上面的過程沒有問題,但是如果你忘記了負(fù)數(shù)的二進(jìn)制表達(dá)式,你會對這個結(jié)果產(chǎn)生懷疑,為什么111111111111111111101010代表-6,你可能會認(rèn)為它應(yīng)該代表-10等等。因此,使用~位取反的另一個關(guān)鍵是理解111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111。擴(kuò)展數(shù)據(jù)JS~的整數(shù)是位求反運(yùn)算,~是兩次求反運(yùn)算。這里~~用于刪除小數(shù)部分。因?yàn)槲贿\(yùn)算的運(yùn)算值必須是整數(shù),而且結(jié)果也是整數(shù),所以位運(yùn)算會自動變成整數(shù)。除了~~n之外,您還可以使用n<<0n>>0n | 0
根據(jù)相應(yīng)的位組合二進(jìn)制數(shù),得到一個新的二進(jìn)制數(shù)。1和0是0;1和1是1;0和0是0。分析如下:它是二進(jìn)制的每個相位的和。1按位and運(yùn)算符“&”是雙目運(yùn)算符。它的功能是參與兩個相應(yīng)的二相和二相的運(yùn)算。只有當(dāng)對應(yīng)的兩個二進(jìn)制位為1時(shí),結(jié)果位才為1,否則為0。操作中涉及的數(shù)字的補(bǔ)碼出現(xiàn)。例如:9&5可以寫為:00001001(9的二進(jìn)制補(bǔ)碼)和00000101(5的二進(jìn)制補(bǔ)碼)00000001(1的二進(jìn)制補(bǔ)碼),所以9&5=1。位和運(yùn)算通常用于清除或保留某些位。例如,如果a的高8位被清除為0,低8位被保留,則可以執(zhí)行&;255操作(255的二進(jìn)制數(shù)是11111)。
C語言中按位與(&)運(yùn)算符是什么意思?
目錄
1二進(jìn)制
2原代碼,反代碼,補(bǔ)碼
3位運(yùn)算符
4位運(yùn)算符提示
位運(yùn)算符在計(jì)算內(nèi)部是補(bǔ)碼運(yùn)算嗎?
要理解位運(yùn)算符,我們需要理解計(jì)算機(jī)存儲和計(jì)算的底層邏輯。
讓我們從最基本的二進(jìn)制開始。
只要你學(xué)過計(jì)算機(jī),就不能不懂二進(jìn)制。
我們知道十進(jìn)制就是每一個十進(jìn)制。例如,11,左邊的1是十位數(shù),意思是10,右邊的1是一位數(shù),意思是1。
如果將數(shù)字1502分開,則有1 1000、5 100、0 10、2 1,
1502=1*10^3 5*10^2 0*10^1 2*10^0,也就是說,小數(shù)位數(shù)對應(yīng)10的冪,小數(shù)位數(shù)是0的冪,小數(shù)位數(shù)是1的冪,小數(shù)位數(shù)是1的冪2的冪,依此類推
同樣,二進(jìn)制中的位數(shù)等于2的冪,所以對于二進(jìn)制中的1010,如果轉(zhuǎn)換成十進(jìn)制中的數(shù)字,則等于
1*2^30*2^21*2^10*2^0=8 2=10。
使用二進(jìn)制數(shù),首先是0,然后是1,然后是10,而不是2,因?yàn)槎M(jìn)制中只有0和1。
小白可以練習(xí)從0到10的寫作,然后寫出以下結(jié)果: