位运算符C语言的六种位运算符

位运算符是C语言中的强大工具,包括按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<>)。

按位与(&)用于清零或保留特定位,如将a的高八位设为0,低八位保留,使用a&255。示例代码中,通过a&b计算得到c。

按位或(|)是当至少一个对应位为1时,结果位为1,如9|5等于13,用于合并位信息。

异或(^)用于位的翻转,当对应位不同时结果为1,如9^5得到12,可用于位操作的逻辑转换。

取反(~)是单目运算,将所有位反转,如~9得到1110。

左移(<<)是通过乘以2的指定次方来移动位,如a<<4将a的二进制左移4位。

右移(>>)根据移位数决定符号位的处理,对于正数,高位补0;对于负数,高位可能补1,如a>>2将15变为3。

位运算在实际中常用于简化计算,如a>>1相当于a除以2,a<<1等于a乘以2。无符号数的位操作也有其特定规则。

位操作可以巧妙地实现位的翻转、保留和交换,例如,用异或运算进行奇偶性判断和数值位的调整。

  • 浣嶈繍绠楃C璇█鐨勫叚绉嶄綅杩愮畻绗
    绛旓細浣嶈繍绠楃鏄疌璇█涓殑寮哄ぇ宸ュ叿锛鍖呮嫭鎸変綅涓(&)銆佹寜浣嶆垨(|)銆佹寜浣嶅紓鎴(^)銆佸彇鍙(锝)銆佸乏绉(<>)銆傛寜浣嶄笌(&)鐢ㄤ簬娓呴浂鎴栦繚鐣欑壒瀹氫綅锛屽灏哸鐨勯珮鍏綅璁句负0锛屼綆鍏綅淇濈暀锛屼娇鐢╝&255銆傜ず渚嬩唬鐮佷腑锛岄氳繃a&b璁$畻寰楀埌c銆傛寜浣嶆垨(|)鏄綋鑷冲皯涓涓搴斾綅涓1鏃讹紝缁撴灉浣嶄负1锛屽9|5绛変簬13锛岀敤浜庡悎骞...
  • C璇█浣嶈繍绠楃
    绛旓細鍦C璇█鐨涓栫晫閲岋紝浣嶆搷浣绗鏄▼搴忓憳鎵嬩腑涓嶅彲鎴栫己鐨勫伐鍏凤紝瀹冧滑鐘瑰浜岃繘鍒朵唬鐮佷腑鐨勯瓟鏈笀锛屽鏁村瀷鏁版嵁(char, short, int, long)鐨勫簳灞備綅杩涜绮剧粏鎿嶆帶銆傝繖閲屾湁鍏綅灏忚兘鎵嬶紝瀹冧滑鍒嗗埆鏄細1. 鎸変綅涓(&): 浠夸經鏄袱浣嶄簩杩涘埗鏁扮殑浜插瘑瀵硅瘽锛屽彧鏈夊綋涓や釜瀵瑰簲浣嶉兘鏄1鏃讹紝缁撴灉鎵嶄細浜捣1鐨勭伅銆傚畠鍦ㄦ竻闆跺拰鍙...
  • C璇█鐨鎸変綅涓庛佹垨銆侀潪銆佸紓鎴栭兘浠涔堟剰鎬濄傛湁浠涔堢敤
    绛旓細鍦ㄨ绠楁満涓紝鏁版嵁閮芥槸浠ヤ簩杩涘埗鏁板舰寮忓瓨鏀剧殑锛屼綅杩愮畻灏辨槸鎸囧瀛樺偍鍗曞厓涓簩杩涘埗浣嶇殑杩愮畻銆侰璇█鎻愪緵6绉嶄綅杩愮畻绗︺鍖呮嫭浣嶄笌(&)銆佷綅鎴(|)銆佷綅闈(~)銆佷綅寮傛垨(^)銆佸乏绉(<<)銆佸彸绉(>>)鍏銆浣嶈繍绠楃 & |~<< >> 鈭 鎸変紭鍏堢骇浠庨珮鍒颁綆鎺掑垪鐨勯『搴忔槸锛浣嶈繍绠...
  • C璇█缂栧啓绋嬪簭,杩涜浣嶈繍绠銆
    绛旓細涓銆佷綅杩愮畻绗璇█鎻愪緵浜嗗叚绉嶄綅杩愮畻绗︼細& 鎸変綅涓 | 鎸変綅鎴 ^ 鎸変綅寮傛垨 ~ 鍙栧弽 << 宸︾Щ >> 鍙崇Щ 1. 鎸変綅涓庤繍绠 鎸変綅涓庤繍绠楃"&"鏄弻鐩繍绠楃銆傚叾鍔熻兘鏄弬涓庤繍绠楃殑涓ゆ暟鍚勫搴旂殑浜岃繘浣嶇浉涓庛傚彧鏈夊搴旂殑涓や釜浜岃繘浣嶅潎涓1鏃讹紝缁撴灉浣嶆墠涓1 锛屽惁鍒欎负0銆傚弬涓庤繍绠楃殑鏁颁互琛ョ爜鏂瑰紡鍑虹幇銆備緥濡傦細9...
  • 浣嶈繍绠楃鐨C璇█鐨勫叚绉嶄綅杩愮畻绗
    绛旓細main(){ inta=9,b=5,c; c=a&b; printf(a=%d\nb=%d\nc=%d\n,a,b,c);} 鎸変綅鎴杩愮畻绗鈥渱鈥濇槸鍙岀洰杩愮畻绗︺ 鍏跺姛鑳芥槸鍙備笌杩愮畻鐨勪袱鏁板悇瀵瑰簲鐨勪簩杩涗綅鐩告垨銆傚彧瑕佸搴旂殑浜屼釜浜岃繘浣嶆湁涓涓负1鏃,缁撴灉浣嶅氨涓1銆傚弬涓庤繍绠楃殑涓や釜鏁板潎浠ヨˉ鐮佸嚭鐜般備緥濡: 9|5鍙啓绠楀紡濡備笅: 00001001 | 00000101=00001101(鍗...
  • C璇█涓殑浣嶈繍绠楃鏈夊摢浜?
    绛旓細C 璇█涓鏈変互涓浣嶈繍绠楃锛&锛堟寜浣嶄笌锛夛細灏嗕袱涓暟鐨勪簩杩涘埗姣忎竴浣嶅悓鏃朵笌锛圓ND锛夎捣鏉ワ紝骞跺皢缁撴灉璧嬬粰宸︽搷浣滄暟銆倈锛堟寜浣嶆垨锛夛細灏嗕袱涓暟鐨勪簩杩涘埗姣忎竴浣嶅悓鏃舵垨锛圤R锛夎捣鏉ワ紝骞跺皢缁撴灉璧嬬粰宸︽搷浣滄暟銆俕锛堟寜浣嶅紓鎴栵級锛氬皢涓や釜鏁扮殑浜岃繘鍒舵瘡涓浣嶅悓鏃跺紓鎴栵紙XOR锛夎捣鏉ワ紝骞跺皢缁撴灉璧嬬粰宸︽搷浣滄暟銆<<锛堝乏绉伙級...
  • c璇█涓殑鎸浣嶈繍绠楃鏈夊摢浜涘吀鍨嬬敤娉?
    绛旓細鍦C璇█涓锛浣嶈繍绠楃鏄紪绋嬩腑鐨勯噸瑕佸伐鍏凤紝鍖呮嫭锛</&锛堟寜浣嶄笌锛夈亅锛堟寜浣嶆垨锛夈乛锛堟寜浣嶅紓鎴栵級鍜寏锛堟寜浣嶅彇鍙嶏級銆備紭鍏堢骇鏂归潰锛寏楂樹簬鍏朵粬杩愮畻绗︼紝渚濇涓簙銆&銆乛銆亅銆傛寜浣嶄笌杩愮畻鏄弻閲嶈鑹诧紝涓鏄氳繃涓庤繍绠楃&鎻愬彇淇℃伅锛屽鎻愬彇鍙橀噺x鐨勬渶浣7浣嶏細x & 0177</锛涗簩鏄氳繃涓0杩涜鎿嶄綔锛屼繚鐣欏彉閲忕殑...
  • C璇█涓鈥滄寜浣嶈繍绠楃鈥濇槸浠涔堟剰鎬?
    绛旓細1銆佹寜浣嶈繍绠楃灏辨槸鐩存帴瀵规暣鏁板湪鍐呭瓨涓殑浜岃繘鍒朵綅杩涜鎿嶄綔杩愮畻銆傛瘮濡傦紝&&杩愮畻鏈潵鏄竴涓昏緫杩愮畻绗︼紝浣嗘暣鏁颁笌鏁存暟涔嬮棿鍙互鐢&杩涜杩愮畻銆備妇涓緥瀛愶紝6鐨勪簩杩涘埗鏄110锛11鐨勪簩杩涘埗鏄1011锛岄偅涔6 & 11鐨勭粨鏋滃氨鏄2锛屽畠鏄簩杩涘埗瀵瑰簲浣嶈繘琛岄昏緫杩愮畻鐨勭粨鏋滐紙0琛ㄧずFalse锛1琛ㄧずTrue锛岀┖浣嶉兘褰0澶勭悊锛夈2銆C...
  • 浠涔堟槸浣嶈繍绠楃?
    绛旓細1 绠楁暟鎿嶄綔绗 2 閫昏緫鎿嶄綔绗 3 鎸変綅鎿嶄綔绗 4 璧嬪艰繍绠楁搷浣滅 5 鍏朵粬鐨勬搷浣滅 鍏朵粬杩愮畻绗涓殑涓夌洰杩愮畻绗︹渃ondition锛焑xp1锛歟xp2 鈥濇槸C璇█涓鍞竴鐨勪笁鐩繍绠楃鍙互鐢╥f鈥斺攅lse璇彞鏉ユ弿杩般傛荤粨锛1 宸︾Щ杩愮畻绗﹀乏绉讳竴浣嶇浉褰撲簬涔樹簩锛屽叾鏁堢巼姣斾箻浠2鐨勬晥鐜囬珮銆傚乏绉诲叾鍙宠竟鑷姩琛ラ浂锛屽彸绉诲叾宸﹁竟琛...
  • c璇█涓殑杩愮畻绗鏈夊摢浜?
    绛旓細鏈绠鍗曠殑鏂规硶灏辨槸锛歝har c = 'A'+32 void main(){ char c='a'-32;printf("c %c",c);getch();}
  • 扩展阅读:厄米算符一览表 ... c语言位运算符详解 ... c语言中所有符号大全 ... 最简单的c语言程序 ... c语言位运算的实例 ... c语言位运算例题 ... c语言位运算符取反 ... c语言按位与 ... c语言提供了几种运算符 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网