1樓:童年的秋天
ch | = (1<<3)
1左移3位 再和ch按位或就好了拉
要置0的話 就
ch & = ~ (1<<3)
2樓:
就三種情況,以單位元組為例說明:
將某一位置1,無論原來是0是1,操作後肯定是1,「按位或(即操作符'|')」乙個該位為1,其餘位為0的單位元組數。如a=00001000,b=000000010,則a | b=00001010,即把第1位變成1了。注意位數從右至左是0~7。
將某一位置0,無論原來是0是1,操作後肯定是0,「按位與(即操作符'&')」乙個該位為0,其餘位為1的單位元組數。如a=00001010,b=11111101,則a | b=00001000,即把第1位變成0了。
將某一位變反,即原為1時變為0,原為0時變為1,「按位異或(即操作符'^')」乙個該位為1,其餘位為0的單位元組數。如a=00001000,b=000001000,則a | b=00000000,即把第3位變反為0了。
這裡的舉例以一次改變1位為例,實用中可以同時改變多位,要改變的每一位都遵從以上規則。
3樓:匿名使用者
這個就要用到位運算了
比如lz說的,就應該是ch^(1<<2)
用二進位制表示的話,就是
0000 0000 0000 0001 <<20000 0000 0000 0100
然後0000 0000
^ 0000 0100
----------------
0000 0100
4樓:匿名使用者
假如你讓乙個數的第n位變為1則讓該數與2的n-1次方 做位或運算比如你要第三位變為1
那麼就讓它與4相或 就可以了
這個第幾位是從右向左數的
5樓:
使用|和&運算子
回答過於簡單,請適當進行補充,這是什麼鬼?
說的密密麻麻的才是好答案?
一邊玩去。。。
6樓:匿名使用者
unsigned i=1;第n位;
ch^=(1< 7樓:匿名使用者 位運算子有| & << >> c語言位運算會不會改變原變數的值 8樓:abc小鴨 位運算不會 改變原變數的值。要改變原變數的值需要經過賦值表示式實現。 ~取反,0取反是1,1取反是0 《是左移,比如1<>右移,類似左移,數值大小除以2的n次方&按位與,1與任意數等於任意數本身,0與任意數等於0,即1&x=x,0&x=0 |按位或,x|y中只要有乙個1則結果為1 ^按位異或,x^y相等則為0,不等則為1 9樓:匿名使用者 不會改變的,除非你這樣 m= (unchar) (m>>2); 如此m的值才會改變,你可以單步執行看看結果 10樓:匿名使用者 會改變例如:m=17二進位制是00010001有移兩位是00000100低位捨去無符號時高位補零右移n位相當於除以2^n 11樓:匿名使用者 不會,將m賦比人,是不會改變的 c語言問題,在位運算中,運算元每右移一位,其結果相當於什麼?若左移1位,其結果相當於什麼? 12樓:非常可愛 1、右移,除以2右移n位除以2的n次方; 右移的概念和左移相反,就是往右邊挪動若干位,運算子是》; 右移對符號位的處理和左移不同,對於有符號整數來說,比如int型別,右移會保持符號位不變,例如: inti=0x80000000; i=i>>1;//i的值不會變成0x40000000,而會變成0xc0000000 2、左移,乘以2左移n位乘以2的n次方; 先說左移,左移就是把乙個數的所有位都向左移動若干位,在c中用《運算子。例如:inti=1; i=i<<2;//把i裡的值左移2位 左移就是:丟棄最高位,0補最低位 擴充套件資料 符號位向右移動後,正數的話補0,負數補1,也就是組合語言中的算術右移。同樣當移動的位數超過型別的長度時,會取餘數,然後移動餘數個位。 負數10100110>>5(假設字長為8位),則得到的是11111101 在c中,左移是邏輯/算術左移(兩者完全相同),右移是算術右移,會保持符號位不變。實際應用中可以根據情況用左/右移做快速的乘/除運算,這樣會比迴圈效率高很多。 13樓:多xdl點事 每右移一位就是除以2,左移一位就是乘以2。c語言中,數字是二進位制儲存的,左移和右移就是變化為2的指數形式。 演示**: #include int main() 程式執行結果: 擴充套件程式c語言中,移位運算子組成的表示式也屬於算術表示式,其值為算術值。左移運算是將乙個二進位制位的運算元按指定移動的位數向左移動,移出位被丟棄,右邊移出的空位一律補0。 右移運算是將乙個二進位制位的運算元按指定移動的位數向右移動,移出位被丟棄,左邊移出的空位一律補0,或者補符號位,這由不同的機器而定。在使用補碼作為機器數的機器中,正數的符號位為0,負數的符號位為1。 14樓:匿名使用者 左移乘二,右移除以2,都是整除,比如5>>15的二進位制表示是101 那麼右移一位之後是10就是2了,是整除的 左移的話就是在後面補乙個零,相當於是乘以二那麼變成了1010,十進位制是10 15樓:匿名使用者 c語言問題,在位運算中,運算元每右移一位,其結果相當將左值除以2 若左移1位,其結果相當於將左值乘以2 16樓: 右移,除以2 左移,乘以2 17樓:rr子騰 左移n位運算元乘以2的n次方冪 右移n位運算元除以2的n次方冪 18樓:匿名使用者 10000001 <<1 ==>1000 0010 相當於指數加1 c語言 菜鳥問題 運算元的位運算不改變原運算元的值 19樓: 就像有賦值語句 a=2; 然後左移兩位 a<<2; a還是2 並沒有變成 8 關於c語言位運算,賦值的問題,回答詳細一點。為什麼按位取反後輸出的結果不一樣? 20樓:匿名使用者 ~val 可以理解成乙個右值,%d 表示~val預設為int型 自然就是-3了 newval = ~val; 等於是強制轉換了型別, newval是無符號char 自然就是0xff-2= 253 %hhd 表示是乙個可以把int型當成unsigned char輸出 自然也是253 21樓:匿名使用者 2的二進位制是00000010,取反得到11111101,最高位為1,說明這是個負數的補碼。負數的補碼,是由其絕對值的原碼取反加1得到,反過來,將負數的補碼減1取反,就得到其絕對值的原碼。11111101-1=11111100,再取反得到00000011,即十進位制的3。 也就是說該負數的絕對值為3,那麼這個負數為-3。 所以第乙個值是-3 整型的每一種都分有無符號(unsigned)和有符號(signed)兩種型別(float和double總是帶符號的),在預設情況下宣告的整型變數都是有符號的型別(char有點特別),如果需宣告無符號型別的話就需要在型別前加上unsigned。 你宣告變數無符號,將二進位制轉換無符號在轉換十進位制,導致最高位由原來的符號位變成了有效數字位了,參與轉換 所以最後結果是253 你去掉前面的unsigned 兩個值應該是一樣的 難道不是每一位媽媽都愛自己的孩子嗎?難道每乙個媽媽都不愛自己的孩子嗎?每一位媽媽難道不會愛自己的孩子嗎?哪一位媽媽不愛自己的孩子?每位媽媽都愛自己的孩子嗎?天下的母親都愛自己的孩子.雙重否定句 天下的母親沒有不愛自己的孩子的。天下的母親都沒有不愛zi己的孩子的。天下的父母沒有不愛自己孩子的。老師愛學... 右移一來位相當於除以2。例 5 1 5的二自進bai制表示是101,那麼右移一位之du後是zhi10就是2了,是整除的 左移的dao話就是在後面補乙個零,相當於是乘以二,那麼變成了1010,十進位制是10。101右移,就是把最後一位拿掉了,是10這個是二進位制的,十進是2,5 2本來是小數,但這裡是... 那個應該不是真正的法師,真正的佛 不會借佛斂財。祈禱佛菩薩最重要的是恭敬心 誠心,有心就有功德,給不給錢 錢多錢少都不重要。佛菩薩也不需要我們供養,我們供養只是為自己積累功德。所以,供養應該出於自願。所以,你不用送錢過去。記得下次不要再上當了。穿僧衣的,不見得是出家人,不能輕信。但是見到僧衣應該尊重...每一位媽媽都愛自己的孩子改為反問句
C語言中的右移一位是不是應該除以
昨天去了柏林禪寺,並且真誠的拜過每一位佛菩薩!跟朋友一塊出來後,寺的旁邊有佛教用品專賣店,朋友