在C语言中~和!在取非时的区别 c语言中!与~有什么区别?最好举例说明

c\u8bed\u8a00\u4e2d!\u548c~\u7684\u533a\u522b

! \u8fd9\u4e2a\u662f \u903b\u8f91\u53cd\uff0c\u51e1\u662fa\u7684\u503c\u4e0d\u4e3a0\u7684\uff0c!a \u5c31\u7b49\u4e8e0\uff1b \u5982\u679ca\u7684\u503c\u4e3a0\uff0c\u5219 !a \u7684\u503c\u4e3a1
\u800c~\u8fd9\u4e2a\u662f \u6309\u4f4d\u53d6\u53cd
\u6bd4\u5982 int a=2 ; \u7528\u4e8c\u8fdb\u5236\u8868\u793a\u4e3a00 00 00 10;
\u5219 !a = 0
\u800c ~a = 11 11 11 01 \uff08\u6309\u4f4d\u53d6\u53cd\u540e\u7684\u4e8c\u8fdb\u5236\u7ed3\u679c\uff0c\u6b64\u7ed3\u679c\u4e3a\u8865\u7801\u5f62\u5f0f\uff09
\u6c42\u5176\u6e90\u7801\u4e3a \uff1a 10 00 00 11 \u5373\u4e3a -3
\u6240\u4ee5 ~a \u7684\u7ed3\u679c\u4e3a -3

一、运算顺序不同

1、~:位运算符,是对x,y进行位运算,x,y取值如上,那么有x&y=0;

2、!:是逻辑运算符,用于从左到右求表达式的真值。

二、运算方式不同

1、~: 位运算的运算速度通常与加法运算相同。

2、!:逻辑运算符用于对包含关系运算符的表达式进行合并或取非。


三、运算过程不同

1、~:位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。

2、!:使用逻辑运算符的表达式,返回0表示”假”,返回1表示 ”“真” 。

参考资料来源:百度百科-位运算符

参考资料来源:百度百科-逻辑运算符



!是逻辑符号,对一个数据进行!运算时,必须先把该数据强制转换为Bool型,即0或1,再进行运算。
而~是位运算,对任何数据都不需要强制转换,起作用是将数据在内存中的每一位(当然是二进制)取反。
两种运算的结果一般不相等。

~是按位的

  • 鍦–璇█涓瓇鍜!鍦ㄥ彇闈炴椂鐨勫尯鍒
    绛旓細涓銆佽繍绠楅『搴忎笉鍚 1銆亊锛氫綅杩愮畻绗︼紝鏄x锛寉杩涜浣嶈繍绠楋紝x锛寉鍙栧煎涓婏紝閭d箞鏈墄&y=0锛2銆!锛氭槸閫昏緫杩愮畻绗︼紝鐢ㄤ簬浠庡乏鍒板彸姹傝〃杈惧紡鐨勭湡鍊笺備簩銆佽繍绠楁柟寮忎笉鍚 1銆亊锛 浣嶈繍绠楃殑杩愮畻閫熷害閫氬父涓庡姞娉曡繍绠楃浉鍚屻2銆!锛氶昏緫杩愮畻绗︾敤浜庡鍖呭惈鍏崇郴杩愮畻绗︾殑琛ㄨ揪寮忚繘琛屽悎骞舵垨鍙栭潪銆備笁銆佽繍绠楄繃绋嬩笉鍚 1銆亊...
  • 鍦–璇█涓瓇鍜!鍦ㄥ彇闈炴椂鐨勫尯鍒
    绛旓細鑰寏鏄 浣嶈繍绠 锛屽浠讳綍鏁版嵁閮戒笉闇瑕佸己鍒惰浆鎹紝璧蜂綔鐢ㄦ槸灏嗘暟鎹湪鍐呭瓨涓殑姣忎竴浣嶏紙褰撶劧鏄簩杩涘埗锛夊彇鍙嶃涓ょ杩愮畻鐨勭粨鏋滀竴鑸笉鐩哥瓑銆
  • c璇█涓!涓巭鏈変粈涔堝尯鍒?鏈濂戒妇渚嬭鏄
    绛旓細! 杩欎釜鏄 閫昏緫鍙嶏紝鍑℃槸a鐨勫间笉涓0鐨勶紝!a 灏辩瓑浜0锛 濡傛灉a鐨勫间负0锛屽垯 !a 鐨勫间负1 鑰寏杩欎釜鏄 鎸変綅鍙栧弽 姣斿 int a=2 ; 鐢ㄤ簩杩涘埗琛ㄧず涓00 00 00 10;鍒 !a = 0 鑰 ~a = 11 11 11 01 锛堟寜浣嶅彇鍙嶅悗鐨勪簩杩涘埗缁撴灉锛屾缁撴灉涓鸿ˉ鐮佸舰寮忥級姹傚叾婧愮爜涓 锛 10 00 00 11 鍗...
  • 鍦–璇█涓笌鎴栭潪鐨勯潪绗﹀彿
    绛旓細鍦–璇█涓锛岄潪杩愮畻鍒嗕负閫昏緫闈炲拰浣嶈繍绠楅潪锛岃繖涓ょ绫诲瀷鐨勯潪鏈夌潃涓嶅悓鐨勭敤閫斿拰绗﹀彿琛ㄧず銆傞鍏堬紝閫昏緫闈炴槸涓绉嶅熀鏈殑閫昏緫杩愮畻锛屽叾绗﹀彿鏄劅鍙瑰彿(!)锛屽湪鎵嬪啓鏃剁洿鎺ュ啓鍙瑰彿锛岃屽湪鐢佃剳杈撳叆鏃讹紝鍙互閫氳繃鎸変笅Shift閿啀鎸1閿疄鐜帮紝鏃犺鏄乏Shift杩樻槸鍙砈hift閮藉彲浠ュ畬鎴愩傝繖涓搷浣滈傜敤浜庡甯冨皵鍊艰繘琛屽彇鍙嶏紝姣斿妫鏌ヤ竴...
  • 鍗曠墖鏈哄彇鍙嶇鍙~鍜!鐨勫尯鍒,姹傛暀銆
    绛旓細浠栦滑鐨勫尯鍒涓嬶細1銆侊紒瀹冭繑鍥炵殑鍊煎彧鏈変袱绉嶇姸鎬0鎴栬1锛2銆亊鏄寜浜岃繘鍒朵綅鍙栧弽瀹冪殑杩斿洖鍊兼湁澶氱锛屽叿浣撳彇鍐充簬鍏蜂綋鏁板銆傚鏋滃湪鍗曠墖鏈轰笂涓涓瓧鑺8浣嶅垎鍒帶鍒8涓鍙o紝鍋囪鏃犵鍙锋暟鍒濆鍊间负1锛岀1涓鍙e紑鍏跺畠鍏ㄥ叧銆傦紒鍚庣鍙e氨鍏ㄥ叧浜嗭紝鑰寏鍚庢槸绗1涓鍙e叧锛屽叾瀹冨叏寮銆
  • 鍦–璇█涓,閫昏緫涓庛侀昏緫鎴栧拰閫昏緫闈炴湁浠涔堝尯鍒?
    绛旓細鍦–璇█涓锛岄昏緫涓庯紙&&锛夈侀昏緫鎴栵紙||锛夊拰閫昏緫闈(!)鏄笁绉嶅熀鏈殑閫昏緫杩愮畻绗︺傚畠浠垎鍒敤浜庤繛鎺ュ竷灏旇〃杈惧紡骞跺垽鏂畠浠殑鐪熷亣銆傞昏緫涓庯紙&&锛夛細閫昏緫涓庤繛鎺ヤ袱涓竷灏旇〃杈惧紡锛屽彧鏈夊綋涓や釜琛ㄨ揪寮忕殑鍊奸兘鏄湡鏃讹紝鏁翠釜琛ㄨ揪寮忕殑鍊兼墠鏄湡銆傚惁鍒欙紝鏁翠釜琛ㄨ揪寮忕殑鍊煎氨鏄亣銆備緥濡傦細閫昏緫鎴栵紙||锛夛細閫昏緫鎴栬繛鎺ヤ袱涓竷灏...
  • 鍦–璇█涓笌鎴栭潪鐨勯潪绗﹀彿鎬庝箞鍐
    绛旓細鍦ㄩ昏緫杩愮畻鏂归潰锛"&&"锛堥昏緫涓庯級浠呭綋涓や釜鏉′欢閮戒负鐪熸椂锛屾暣涓〃杈惧紡鎵嶄负鐪燂紱鑰"||"(閫昏緫鎴)鍙鍏朵腑涓涓潯浠朵负鐪燂紝鏁翠釜琛ㄨ揪寮忓嵆涓虹湡銆傞潪杩愮畻绗"!"鍒欑敤浜庡涓涓竷灏斿艰繘琛屽彇鍙嶏紝濡傛灉鍘熷间负鐪燂紝鍒欑粨鏋滀负鍋囷紝鍙嶄箣浜︾劧銆傛荤粨璧锋潵锛C璇█涓殑杩欎簺绗﹀彿鍜屾搷浣滅鎻愪緵浜嗕赴瀵岀殑浣嶆搷浣滃拰鏉′欢鍒ゆ柇鎵嬫锛屽浜...
  • C璇█涓殑 涓鎴栭潪杩愮畻
    绛旓細鍒欑粨鏋滀负鍋囥2銆侀昏緫鎴 鍦–璇█涓閫昏緫鎴栫敤||琛ㄧず銆備妇渚嬶細a||b锛堝叾涓璦銆乥閮戒唬琛ㄤ竴涓潯浠讹級濡傛灉a鍜宐鏈変竴涓垨浠ヤ笂涓虹湡锛屽垯缁撴灉涓虹湡锛屼簩鑰呴兘涓哄亣鏃讹紝缁撴灉涓哄亣銆3銆侀昏緫闈 鍦–璇█涓昏緫闈炵敤!琛ㄧず銆備妇渚嬶細!a(a浠h〃涓涓潯浠)濡傛灉a涓哄亣锛屽垯!a涓虹湡锛屽鏋渁涓虹湡锛屽垯!a涓哄亣銆
  • c璇█涓?:鍜!鏄粈涔堟剰鎬?鎬庝箞杩愮敤鍦ㄧ紪绋嬩腑?
    绛旓細锛佺殑鎰忔濇槸鐢ㄦ潵鍙栭潪杩愮畻鐨勶紝锛乼rue鐨勭粨鏋滃氨鏄 false 锛乫alse 鐨勭粨鏋滄槸 true銆傚啓绋嬪簭涓紝锛燂細鐢ㄧ殑姣旇緝灏戯紝锛佷富瑕佺敤鍦ㄦ潯浠跺垽鏂腑銆傚欢灞曞洖绛旓細1銆丆璇█鏄竴闂ㄩ氱敤璁$畻鏈虹紪绋嬭瑷锛屽簲鐢ㄥ箍娉涖C璇█鐨璁捐鐩爣鏄彁渚涗竴绉嶈兘浠ョ畝鏄撶殑鏂瑰紡缂栬瘧銆佸鐞嗕綆绾у瓨鍌ㄥ櫒銆佷骇鐢熷皯閲忕殑鏈哄櫒鐮佷互鍙婁笉闇瑕佷换浣曡繍琛岀幆澧冩敮鎸佷究...
  • c璇█涓殑!鏄粈涔堟剰鎬?
    绛旓細闈瀀鐨勬剰鎬濄锛佸湪C璇█涓鏈変袱绉嶈〃杈撅紝杩欓噷杈硅〃绀衡滈潪鈥濄傚彇鍐充簬X鐨勫硷紝濡傛灉X鐨勫间负0锛岋紒X灏辨槸1.濡傛灉X鐨勫间笉涓0锛岋紒X灏辨槸0鐨勬剰鎬濄
  • 扩展阅读:c#语言翻译器 ... c语言与和或的区别 ... c语言必背100代码 ... c语言代码在线翻译 ... c语言新手入门代码 ... c需要与或非 ... 在c语言中intchar和short ... c语言与或非运算口诀 ... c十十是什么意思 ...

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