c++的基本进制和它的运算有没有什么简便方法 C++进制运算求以下公式中的变量

c++ \u8fd0\u7b97\u7b26\uff01&,|,~ \u8fd9\u4e9b\u4e8c\u8fdb\u5236\u8fd0\u7b97\u7b26\uff0c\u5728\u5b9e\u9645\u4e2d\u662f\u600e\u4e48\u7528\u7684\uff0c\u4e00\u822c\u6211\u4eec\u90fd\u662f\u7528\u7684\u662f&&,||\u8fd9\u4e9b\uff0c\u8c22\u8c22\u9ad8\u624b\u8d50\u6559\uff01

\u6211\u8bf4\u7684\u5168\u4e00\u4e9b\u5427\uff1a
\u4e8c\u8fdb\u5236\u8fd0\u7b97\u7b26\u5305\u62ec\uff1a\uff01(\u975e)\uff0c&(\u6309\u4f4d\u4e0e)\uff0c|(\u6309\u4f4d\u6216)\uff0c^(\u6309\u4f4d\u5f02\u6216)
\u9996\u5148\u8bf4\u660e\u4e00\u4e0b\uff0c\u6240\u6709\u4e8c\u8fdb\u5236\u7684\u8fd0\u7b97\u90fd\u662f\u201c\u6309\u4f4d\u201d\u7684\uff0c\u5982\u679c\u662f8\u4f4d\u548c8\u4f4d\uff08\u4e8c\u8fdb\u5236\u7801\uff0c\u4f4e\u4f4d\u5bf9\u9f50\uff09\u3002\u8fd0\u7b97\u7684\u65f6\u5019\u662f\u6bcf\u4e00\u4f4d\u90fd\u8fd0\u7b97\u7684\uff08\u4e0d\u662f\u6574\u4f53\uff09\u3002
\u4f8b1\uff1a\uff01(\u975e)\uff1a\u8868\u793a\u6240\u6709\u76840\u30011\u8fdb\u884c\u66ff\u6362
\uff0111110000 == 00001111
\u4f8b2\uff1a&(\u6309\u4f4d\u4e0e)\uff1a\u4e24\u4e2a\u5b57\u8981\u6309\u4f4d\u8fdb\u884c\u4e0e\u8fd0\u7b97\uff08\u4e24\u4e2a\u90fd\u662f1\u624d\u662f1\uff0c\u6709\u4e00\u4e2a\u4e0d\u662f1\u5219\u5c31\u4e0d\u662f1\uff09
11110000&11111100 == 11110000
\u4f8b3\uff1a|(\u6309\u4f4d\u6216)\uff1a\u4e24\u4e2a\u5b57\u8981\u6309\u4f4d\u8fdb\u884c\u6216\u8fd0\u7b97\uff08\u4e24\u4e2a\u4e2d\u6709\u4e00\u4e2a\u662f1\u5c31\u662f1\uff09
11110000|11111100 == 11111100
\u4f8b4\uff1a^(\u6309\u4f4d\u5f02\u6216)\uff1a\u4e24\u4e2a\u5b57\u8981\u6309\u4f4d\u8fdb\u884c\u5f02\u6216\u8fd0\u7b97\uff08\u5c31\u662f\u4e24\u4e2a\u662f\u4e0d\u4e00\u6837\u7684\uff0c\u5c31\u662f1\uff0c\u5982\u679c\u4e00\u6837\u5c31\u662f0\u3002\u6bd4\u5982\uff0c\u5982\u679c\u4e00\u4e2a\u662f0\u4e00\u4e2a\u662f1\uff0c\u5f97\u6570\u662f1\uff0c\u5982\u679c\u4e24\u4e2a\u90fd\u662f0\u3001\u6216\u8005\u4e24\u4e2a\u90fd\u662f1\u5f97\u6570\u5c31\u662f0\uff09
11110000^11111100 == 00001111

\u4e0d\u77e5\u9053\u4f60\u6709\u6ca1\u6709\u6e05\u695a\u4e86\u3002

1\uff0c2\uff0c3\uff0c4\u662f\u6ca1\u6709\u9006\u8fd0\u7b97\u7684\uff0c\u7406\u8bba\u4e0a\u6ca1\u6709\u552f\u4e00\u89e3\uff0c\u53ea\u8981\u627e\u4e00\u4e2a\u6ee1\u8db3\u7684\u5c31\u53ef\u4ee5\u4e86\u3002
\u6bd4\u5982
x = (0x4a234 & 0x24ea34) \u6ee1\u8db3\u8981\u6c42
y = (0x6a3ebb & 0x2a2283) \u6ee1\u8db3\u8981\u6c42
x = (0x12fa87 | 3bfabf) \u6ee1\u8db3\u8981\u6c42
y = (0x2b6a7e | 0x7f7bfe) \u6ee1\u8db3\u8981\u6c42
x = (0x3be43a ^ 0x95ace) \u6ee1\u8db3\u8981\u6c42
y = (0x2afbd ^ 0x26230f) \u6ee1\u8db3\u8981\u6c42
\u53ef\u4ee5\u4ee3\u5165\u68c0\u9a8c\u4e0b\uff0c\u90fd\u662f\u6b63\u786e\u7684\u3002

c++代码中的数据可以用10进制,8进制,16进制,运行时是进行2进制运算。
简便方法当然有,多是位运算,位运算效率比一般的加减乘除高很多,以下是一些位运算技巧:
将最右侧0位改为1位: x | (x+1)
x &= (x-1); //将x的最右边的1位变成0
二进制补码运算公式:
-x = ~x + 1 = ~(x-1)
~x = -x-1
-(~x) = x+1
~(-x) = x-1
x+y = x - ~y - 1 = (x|y)+(x&y)
x-y = x + ~y + 1 = (x|~y)-(~x&y)
x^y = (x|y)-(x&y)
x|y = (x&~y)+y
x&y = (~x|y)-~x
x==y: ~(x-y|y-x)
x!=y: x-y|y-x
x< y: (x-y)^((x^y)&((x-y)^x))
x<=y: (x|~y)&((x^y)|~(y-x))
x< y: (~x&y)|((~x|y)&(x-y))//无符号x,y比较
x<=y: (~x|y)&((x^y)|~(y-x))//无符号x,y比较

  • c++鐨勫熀鏈繘鍒跺拰瀹冪殑杩愮畻鏈夋病鏈変粈涔堢畝渚挎柟娉
    绛旓細c++浠g爜涓殑鏁版嵁鍙互鐢10杩涘埗锛8杩涘埗锛16杩涘埗锛岃繍琛屾椂鏄繘琛2杩涘埗杩愮畻銆傜畝渚挎柟娉曞綋鐒舵湁锛屽鏄綅杩愮畻锛屼綅杩愮畻鏁堢巼姣斾竴鑸殑鍔犲噺涔橀櫎楂樺緢澶氾紝浠ヤ笅鏄竴浜涗綅杩愮畻鎶宸э細灏嗘渶鍙充晶0浣嶆敼涓1浣嶏細 x | (x+1)x &= (x-1); //灏唜鐨勬渶鍙宠竟鐨1浣嶅彉鎴0 浜岃繘鍒惰ˉ鐮佽繍绠楀叕寮忥細-x = ~x + 1 = ~(x-1)...
  • C璇█涓崄杩涘埗鏁板拰鍗佸叚杩涘埗鏁拌兘鐩存帴杩愮畻鍚?
    绛旓細鍙互銆備竴涓暣鍨嬪彉閲忓彲浠ユ槸鍗杩涘埗锛屼篃鍙互鏄崄鍏繘鍒讹紝鍙槸琛ㄧず鏂规硶涓嶅悓缃簡銆傝嚦浜杩愮畻缁撴灉锛屼綘鎯宠緭鍑哄崄杩涘埗灏辫緭鍑哄崄杩涘埗锛屾兂杈撳嚭鍗佸叚杩涘埗灏辫緭鍑哄崄鍏繘鍒讹紝鏍囧噯杈撳嚭鍑芥暟printf()鏈夎繖涓姛鑳姐
  • C璇█涓崄杩涘埗鏁板拰鍗佸叚杩涘埗鏁拌兘鐩存帴杩愮畻鍚
    绛旓細C璇█绋嬪簭涓紝鍗杩涘埗鍜鍗佸叚杩涘埗瀹為檯鏄簰閫氱殑銆傚崄鍏繘鍒舵暟鐢辨暟瀛0~9銆佸瓧姣岮~F锛堟垨a~f锛夌粍鎴愩傛妸鍗佸叚杩涘埗鏁版寜鏉冨睍寮銆佺浉鍔犲嵆寰楀崄杩涘埗鏁般傜幇瀹炰腑鍗佸叚杩涘埗鏁板拰鍗佽繘鍒舵暟涓嶅彲浠ョ洿鎺ョ浉鍔狅紝濡傛槸鍦ㄧ數鑴戜笂鐨勮瘽鏄彲浠ョ殑锛屼綍绉嶈繘鍒舵暟鍦ㄧ數鑴戜笂閮芥槸浠ヤ簩杩涘埗鐨勫舰寮忚〃绀虹殑锛屽湪鐢佃剳缂栧啓绋嬪簭鏃舵槸鍙互鐩稿姞鐨勩傚崄杩涘埗鏁...
  • C璇█鐨勮繍绠閮芥湁鍝簺?
    绛旓細浣嶆搷浣杩愮畻閮藉彧鑳芥槸鏁村舰鎴栧瓧绗﹀瀷锛屽瓧绗﹀瀷瀹為檯鏄崟瀛楄妭鏁村舰銆傚寘鎷互涓嬪嚑涓搷浣滅锛氭寜浣嶄笌&锛屾寜浣嶆垨 |锛屾寜浣嶅紓鎴 ^锛屽乏绉<<锛屽彸绉>> 鍙﹀杩樻湁涓涓彇浣欐搷浣滐細a%b鐨勬剰鎬濇槸锛宎闄や互b锛屽彇浣欐暟銆傝繖涓槸C璇█鐨勭‖鎬ц瀹氾紝浣嶆搷浣滈兘鏄鏁版寜鐓т簩杩涘埗杩涜琛ㄨ揪鐨勬椂鍊欐墠鏈夌殑姒傚康锛涜屽彇浣欐搷浣滄槸鏁存暟鐩搁櫎寰椾綑鏁...
  • 浜杩涘埗涓浣杩愮畻瀹炵敤鎿嶄綔姹囨(鍩虹绡)
    绛旓細鍩虹鍏ラ棬浣杩愮畻鍖呮嫭鎸変綅涓(&), 鎴(|), 寮傛垨(^), 闈(~), 宸︾Щ(<<), 鍙崇Щ(>>)绛夛紝瀹冧滑鍦ㄨ绠楁満鍐呭瓨涓彂鎸ョ潃鍏抽敭浣滅敤銆備互浜杩涘埗鍜鍗佸叚杩涘埗涓轰緥锛岀悊瑙e畠浠箣闂寸殑杞崲锛岃兘澶熸礊瀵熸暟鎹湪鍐呭瓨涓殑瀛樺偍鏂瑰紡锛岀壒鍒槸瀛楄妭涓庝簩杩涘埗鐨勫叧鑱旓紝鎻ず浜嗗畠浠湪鍐呭瓨鍌ㄥ瓨涓殑鏁堢巼浼樺娍銆傜鍙蜂笌鏁板肩殑绉樺瘑鍦ㄤ簩杩涘埗涓...
  • c璇█涓笉鍚杩涘埗鐨鏁颁箣闂磋兘涔嬮棿杩涜杩愮畻鍚
    绛旓細娌℃湁闂锛岀粨鏋滄槸3 浣犲凡缁忔爣绀哄嚭瀹冩槸16杩涘埗浜嗭紝缂栬瘧鍣ㄤ細璇嗗埆锛屽苟杞崲鎴愪簩杩涘埗锛屾墍鏈夌殑鏁板埌鐢佃剳閲岃竟閮芥槸浜岃繘鍒躲傛樉绀虹殑鏃跺欓粯璁ゅ崄杩涘埗
  • C璇█涓16杩涘埗鐨勮繍绠闂
    绛旓細鐨勬椂鍊 璁$畻鏈烘槸鐢瀹冧滑鍚勮嚜琛ㄧず鐨勪簩杩涘埗鏉璁$畻鐨 鍥犳浜嬪疄涓婂緱鍒扮殑b瀛樺湪璁$畻鏈洪噷鏄互浜岃繘鍒跺瓨鍦ㄧ殑 鍙槸褰撲綘杈撳嚭鏃跺欏埄鐢ㄥ己鍒惰浆鎹㈣緭鍑烘墠鍙樻垚鎴戜滑鎯宠鐨勫崄杩涘埗鎴栬呭崄鍏繘鍒 姣斿锛 鍦╞杈撳嚭鏃跺欑敤鍗佸叚杩涘埗杈撳嚭 涔熷氨鏄痯rintf("%x",b);蹇藉拷 鎵撲簡杩欎箞澶 甯屾湜瀵逛綘鏈夊府鍔 O(鈭鈭)O~...
  • 51鍗曠墖鏈C璇█:浜杩涘埗涓鍗佽繘鍒惰兘鐩存帴杩愮畻鍚?
    绛旓細瀵瑰崟鐗囨満鏉ヨ锛屼笉绠′换浣杩涘埗鐨勬暟瀛楋紝鍦ㄥ崟鐗囨満鍐呴儴閮芥槸浜岃繘鍒惰〃绀虹殑銆傛墍浠ヨ兘鐩存帴杩愮畻銆備絾鏄崟鐗囨満璁$畻娴偣鏁版槸闈炲父鑰楁椂鐨勶紝鍥犳瑕佷紭鍖栫畻娉曪紝姣斿浣犵殑涔樹互0.0625绛変环浜庨櫎浠16锛1梅16=0.0625锛夛紝鑰岄櫎浠16绛変环浜庣畻鏁板彸绉4浣嶏紝杩欐牱鐨勮繍绠姣旂洿鎺ヤ箻浠0.0625蹇嚑鍗佸嶃
  • c璇█涓笌鎴栭潪鐨勫熀鏈繍绠瑙勫垯?
    绛旓細3銆侀潪(NOT)閫昏緫闈炶繍绠楋紝浠呮湁涓涓繍绠楁搷浣滄暟锛屾墍浠ユ槸涓鍏冮昏緫杩愮畻銆傝繍绠楄鍒欙細涓鍙橀浂锛岄浂鍙樹竴銆傚嵆鎿嶄綔鏁颁负1鏃剁粨鏋滀负0锛屾搷浣滄暟涓0鏃剁粨鏋滀负1銆C璇█鐨勫熀鏈繍绠锛氱畻鏈繍绠楋紝涓昏鍖呮嫭鐨勫氨鏄姞锛屽噺锛屼箻锛岄櫎鍜屽彇浣欒繍绠楋紝鍏朵腑闇瑕佹敞鎰忕殑鏄彇浣欒繍绠楀張绉颁负妯¤繍绠楋紝鍦ㄧ櫨鍒嗕箣鐨勪袱杈逛篃閮芥槸鏁存暟锛屽苟涓旂櫨鍒嗕箣鍙...
  • C璇█杩涘埗杞崲
    绛旓細2杩涘埗锛岀敤涓や釜闃挎媺浼暟瀛楋細0銆1锛  8杩涘埗锛岀敤鍏釜闃挎媺浼暟瀛楋細0銆1銆2銆3銆4銆5銆6銆7锛  10杩涘埗锛岀敤鍗佷釜闃挎媺浼暟瀛楋細0鍒9锛  16杩涘埗灏辨槸閫16杩1锛屼絾鎴戜滑鍙湁0~9杩欏崄涓暟瀛楋紝鎵浠ユ垜浠敤A锛孊锛C锛孌锛孍锛孎杩欎簲涓瓧姣嶆潵鍒嗗埆琛ㄧず10锛11锛12锛13...
  • 扩展阅读:c++入门自学 ... c++编程入门自学 ... 小学生c++编程 ... c++和python先学哪个 ... c++入门程序代码 ... c++编程必背50个代码 ... c++免费视频教程 ... c++加减乘除运算编程 ... c++怎么输出二进制 ...

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