C++中这个是什么意思switch((c1<<2)+(c2<<1)+c3)帮忙解释一下 switch(c1<<2+(c2<<1)+c3) 怎么运算的...

\u8fd9\u6bb5C++\u7a0b\u5e8f\u4e2d\u7684((c1<<2)+(c2<<1)+c3\u600e\u4e48\u7406\u89e3\uff0c\u8c22\u8c22\uff01

int c1 = a%3 ==0;
int c2 = a%5 ==0;
int c3 = a%7 ==0;

\u7ed3\u675f\u540ec1\uff0cc2\uff0cc3\u662f\u4e09\u4e2a\u72b6\u6001\u4f4d\uff0c\u5206\u522b\u8868\u793a\u80fd\u88ab3\u6574\u9664\uff0c\u80fd\u88ab5\u6574\u9664\uff0c\u80fd\u88ab7\u6574\u9664\u3002
\u73b0\u5728\u8981\u5224\u65ad\u8fd9\u51e0\u4e2a\u72b6\u6001\u4f4d\uff0c\u7531\u4e8e\u6bcf\u4e2a\u72b6\u6001\u4f4d\u53ea\u80fd\u662f0\u62161\u4e4b\u4e00\uff0c\u56e0\u6b64\u53ef\u4ee5\u628a\u5b83\u4eec\u79fb\u4f4d\u7ec4\u6210\u4e00\u4e2a\u6574\u6570C=(c1c2c3)\u3002\u5199\u6210\u4e8c\u8fdb\u5236\u7684\u8bdd\uff0c0b000\u8bf4\u660e\u4e0d\u80fd\u88ab357\u6574\u9664\uff0c0b001\u53ea\u80fd\u88ab7\u6574\u9664\uff0c\u7b49\u7b49\u3002

(c1<<2)+(c2<<1)+c3\u5c31\u662f\u79fb\u4f4d\u8fc7\u7a0b\uff0cc1\u5de6\u79fb\u4e24\u4e2a\u4e8c\u8fdb\u5236\u4f4d\uff0cc2\u5de6\u79fb\u4e00\u4e2a\u4e8c\u8fdb\u5236\u4f4d\uff0cc3\u4e0d\u7528\u79fb\u4f4d\u3002\u52a0\u8d77\u6765\u5c31\u662fC=(c1c2c3)\u3002

c1<<2+(c2<<1)+c3
\u79fb\u4f4d\u8fd0\u7b97\u7b26\u6bd4\u52a0\u51cf\u8fd0\u7b97\u7b26\u8981\u4f4e\uff0c\u6240\u4ee5\u5148\u7b97\u52a0\u518d\u7b97\u79fb\u4f4d\uff0c\u5728\u8fd9\u5148\u7b97\u5f97c2<<1,\u7136\u540e\u628aC1\u5de6\u79fb2+(c2<<1)+c3\u4f4d\u5c31\u662f\u7ed3\u679c\u4e86\uff01\uff01

c1<<2 是位运算,对c1变量左移两位,相当于乘以4,但比乘法运算快得多。
c2<<1 对c2变量左移两位,相当于乘以2

总的就是4*c1+2*c2+c3 然后switch语句对这个表达式结果进行处理。
c1,c2,c3的值为0或1,用4*c1+2*c2+c3表达式相当于把c1c2c3二进制数转为十进制数。

switch((c1<<2)+(c2<<1)+c3)
(c1<<2)+(c2<<1)+c3 整体上当做switch的一个变量
c1<<2表示c1向左移动两位,仍然看做一个int值,假如c1=1,那么向左移动两位的结果就变成了c1=4;
c2<<1表示c2向左移动一位,也看做一个int值

<<用于int变量的话,是位操作,表示二进制数据左移两位

<< 是位移,向左移2位;
http://zhidao.baidu.com/question/89293878.html

c1左移2位+c2左移2位+c3

分别判断上述的值为0~7时,输出不同的情况。

  • C璇█涓嶇敤CHAR鍙互鐢ˋ鎴栬SWIT
    绛旓細寰幆涓紝姣忔c++ 褰c='G'鏃堕鍑恒傛墍浠 瀵逛簬switch(c++) 鏄厛鍙栧煎啀鑷姞鐨勬儏鍐典笅锛屽氨浼氭妸 c= A B C D E F閮借蛋涓閬嶃 褰揷='F'鏃讹紝switch鍚庤嚜鍔犱负G锛岄鍑哄惊鐜備篃灏辨槸 case ACBDE鍜宒efault鍚勮嚜鎵ц涓娆°侫: k++ 閫鍑簊witch鍚庯紝鍐峩++; k=2 B: k--锛屼絾娌℃湁break, 缁х画k+=2 閫鍑簊w...
  • c璇█閲岀殑 switch 鎬庝箞蹇 璇峰啓鍑洪煶鏍
    绛旓細[swi:tfh}
  • C璇█鐢ㄦ潵CASE杩欎釜SWIT鍐嶇敤AB
    绛旓細case 1琛岀粨灏惧皯浜嗕竴涓垎鍙枫傛墽琛宻witch(x) x=1 鎵цcase 1 a++ a=1 娌℃湁break 缁х画鎵цcase 2 a++ a=2 b++ b=1 杈撳嚭 a=2,b=1 閫堿
  • C璇█棰 楂樻墜甯府蹇
    绛旓細{ int x=1,y=0,a=0,b=0;switch(x){ case 1: switch // 濡傛灉杩欓噷鏄痵witch锛坹锛夌殑璇濓紝缁撴灉涓 2 1 { case 0:a++; break;case 1:b++; break;} case 2:a++;b++; break;} printf("%d %d\n",a,b);} 鍥犱负鎵ц瀹岋紙绗竴涓級case1浠ュ悗娌℃湁break锛屼細缁х画鎵цcase2....
  • switch鏄粈涔堟剰鎬
    绛旓細switch鐨勬剰鎬濇槸杞崲銆係witch鐢ㄥ湪缂栫▼涓紝濡侰璇█涓畠缁忓父璺烠ase涓璧蜂娇鐢紝鏄竴涓垽鏂夋嫨浠g爜銆傛眽璇炕璇戯細n. 寮鍏筹紝 鐢甸椄锛 杞崲锛 杞灊锛 闉瓙锛 閬撳矓vt. 杞彉锛 鍒囨崲锛 鎽嗗姩锛 杞崲锛 浣胯浆杞╲i. 杞崲锛 鍙樻崲锛 鎽嗗姩鐩稿叧璇嶇粍锛歴witch sb onswitch sb offswitch sth out of sb's handasleep at...
  • c璇█ switcf 涓嶈兘姝g‘杈撳嚭
    绛旓細"A\n");break; case 8:printf("B\n");break; case 7:printf("C\n");break; case 6:printf("D\n");break; default:printf("E\n"); }}鏀逛负锛歴canf("%d",&A); 涓嶈鐪熺湅锛岃繕鐪熷彂鐜颁笉浜嗭紝杩欑閿欒涔熶笉浼氭彁绀恒傛墍浠ワ紝浣犺瀛︿細璋冭瘯銆備竴璋冭瘯锛岄棶棰樺氨鍑烘潵浜 ...
  • ...鏄亣鍒扮涓涓猙reak灏辩洿鎺ヨ烦鍑簊witch涓庤鍙ヤ簡?涓嶆墽琛屽悗闈㈢殑swit...
    绛旓細涓嶆墽琛屽悗闈㈢殑swit c璇█闂绗24棰,鏄笉鏄亣鍒扮涓涓猙reak灏辩洿鎺ヨ烦鍑簊witch涓庤鍙ヤ簡?涓嶆墽琛屽悗闈㈢殑switch(b%2)浜?璋㈣阿!!!... c璇█闂绗24棰,鏄笉鏄亣鍒扮涓涓猙reak灏辩洿鎺ヨ烦鍑簊witch涓庤鍙ヤ簡?涓嶆墽琛屽悗闈㈢殑switch(b%2)浜?璋㈣阿!!! 灞曞紑  鎴戞潵绛 ...
  • C璇█涓嬪垪鍏跺畠鎬庝箞鍙兘SWIT
    绛旓細鑰屽悗缁袱鍙ユ槸鏃犳潯浠舵墽琛岀殑銆備笌鍏跺畠涓嶅悓銆傞C 18 for寰幆 k=1,2 k=1鏃讹紝鎵цdefault鍒嗘敮銆 c+=k c=c+k=0+1=1 娌℃湁break,缁х画鎵цcase 2, c++, c=c+1=2 break閫鍑簊witch 缁х画鎵ц寰幆 k=2 鎵цcase 2, c++, c=c+1=3 break閫鍑簊witch 閫鍑哄惊鐜傝緭鍑篶涓3 閫堿 ...
  • 姹C绋嬪簭:杈撳叆瀛楃鍨16杩涘埗,浠ュ洖杞︾粨鏉,杞崲杈撳嚭10杩涘埗
    绛旓細int main(){ int base=16,n;char a[32];long s=0;int i=0;scanf("%c",&a[i]);while('0'<=a[i]&&a[i]<='9'||'A'<=a[i]&&a[i]<='F'){ i++;scanf("%c",&a[i]);} n=1;while(--i>=0){ if('0'<=a[i]&&a[i]<='9')s+=(a[i]-'0')*n;if('A...
  • C璇█涓"a"涓浠涔涓嶅睘浜庡瓧绗﹀瀷甯搁噺鍛?鏈夐珮鎵嬩负鎴戣缁嗚瑙d竴涓媠witch璇彞...
    绛旓細浣犺緭鍏ョ殑鏄4锛佲欙紝杩樺皢鎵ц鈥樹綘杈撳叆鐨勬槸涓嶆槸1-4锛侊紒',鍥犱负娌℃湁break璇彞鍘荤粓姝㈣鎸囦护 浠ユ绫绘帹锛屽鏋滆緭鍏4锛屽皢杈撳嚭鈥樹綘杈撳叆鐨勬槸4锛佲欌樹綘杈撳叆鐨勬槸涓嶆槸1-4锛侊紒鈥,涓ゆ潯璇彞锛屽鏋滀綘杈撳叆鐨勬槸1-4鐨勪互涓虹殑鏁板硷紝閭e皢杈撳嚭鈥樹綘杈撳叆鐨勬槸涓嶆槸1-4锛侊紒鈥欙紝杩欎篃灏辨槸default鐨勭敤娉曚簡銆傛噦浜嗗悧锛
  • 扩展阅读:c++中<< ... c需要和c++学哪个更好 ... c++和python先学哪个 ... c#一般用来开发什么 ... c++中cout的用法 ... c++中++是什么意思 ... c++和java哪个好就业 ... c c++ c# ... c++和c#哪个前景好 ...

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