取反符號(hào)怎么打 c語(yǔ)言中的位運(yùn)算符中‘按位取反’是怎么運(yùn)算的?
c語(yǔ)言中的位運(yùn)算符中‘按位取反’是怎么運(yùn)算的?使用~位求反時(shí),計(jì)算機(jī)將對(duì)操作數(shù)對(duì)應(yīng)的二進(jìn)制表達(dá)式的每一位求反,求反后得到的值就是~位求反的結(jié)果。例如,如果計(jì)算機(jī)是32位的,則下一步是計(jì)算~5的值,計(jì)算
c語(yǔ)言中的位運(yùn)算符中‘按位取反’是怎么運(yùn)算的?
使用~位求反時(shí),計(jì)算機(jī)將對(duì)操作數(shù)對(duì)應(yīng)的二進(jìn)制表達(dá)式的每一位求反,求反后得到的值就是~位求反的結(jié)果。例如,如果計(jì)算機(jī)是32位的,則下一步是計(jì)算~5的值,計(jì)算過(guò)程如下:5的二進(jìn)制表達(dá)式是:1000000000000000101,執(zhí)行~operation,即在~5:111111111101010之后,即結(jié)果是-6。上面的過(guò)程沒(méi)有問(wèn)題,但是如果你忘記了負(fù)數(shù)的二進(jìn)制表達(dá)式,你會(huì)對(duì)這個(gè)結(jié)果產(chǎn)生懷疑,為什么111111111111111111101010代表-6,你可能會(huì)認(rèn)為它應(yīng)該代表-10等等。因此,使用~位取反的另一個(gè)關(guān)鍵是理解111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111。擴(kuò)展數(shù)據(jù)JS~的整數(shù)是位取反運(yùn)算,~是雙取反運(yùn)算。這里~~用于刪除小數(shù)部分。由于按位運(yùn)算的運(yùn)算值要求為整數(shù),且結(jié)果也是整數(shù),因此按位運(yùn)算后的所有數(shù)據(jù)都會(huì)自動(dòng)變?yōu)檎麛?shù)。除了~~n,您還可以使用n<<0n>>0n | 0