c++语言中左移位赋值是什么意思 C++中左移和右移位具体的步骤是怎么回事?

C++\u4e2d\u7684\u5de6\u79fb\u53f3\u79fb\u8fd0\u7b97\u6709\u4ec0\u4e48\u4f5c\u7528

\u9996\u5148\u5728\u8ba1\u7b97\u673a\u4e2d\uff0c\u4e0d\u7ba1\u662f\u6570\u5b57\u8fd8\u662f\u5b57\u6bcd\u6216\u8005\u7b26\u53f7\uff0c\u90fd\u7528\u4e00\u4e2a\u7279\u5b9a\u7684\u4e8c\u8fdb\u5236\u7801\u6765\u8868\u793a\uff0c\u5de6\u79fb\u53f3\u79fb\u53ef\u4ee5\u76f4\u63a5\u64cd\u7eb5\u4e8c\u8fdb\u5236\u7801\uff0c\u5bf9\u4e8e\u4e00\u4e9b\u6570\u5b57\u7684\u5904\u7406\u975e\u5e38\u65b9\u4fbf\uff0c\u6bd4\u5982\u5341\u8fdb\u5236\u76845\u7528\u4e8c\u8fdb\u5236\u8868\u793a\u4e3a101\uff0c\u90a3\u4e48\u60f3\u53d8\u621010\u5219\u5de6\u79fb\u4e00\u4f4d\uff0c\u7a7a\u4f4d\u75280\u8865\u5145\u5c31\u53d8\u6210\u4e861010\uff1b\u5982\u679c\u60f3\u8ba1\u7b975/2\u53d6\u6574\uff0c\u5219\u76f4\u63a5\u53f3\u79fb\u4e00\u4f4d\u53d8\u6210010\uff0c\u5c31\u662f2

\u8fd9\u662f\u8bed\u8a00\u5185\u90e8\u5b9e\u73b0\u7684\u3002
\u4e0d\u8fc7\u603b\u4e4b\u5c31\u662f\u5c06\u6570\u7684\u5bf9\u5e94\u4e8c\u8fdb\u5236\u5de6\u79fb\u6216\u8005\u53f3\u79fb\uff0c\u79fb\u4e86\u4ee5\u540e\u7a7a\u51fa\u7684\u8865\u96f6
\u4f8b\u5982int i = 5\u7684\u4e8c\u8fdb\u5236\u662f 00000101
i>>2 \u53f3\u79fb\u4e24\u4f4d--> 00000001 (\u5de6\u8fb9\u7a7a\u51fa\u7684\u8865\u96f6)
i 00010100 (\u53f3\u8fb9\u7a7a\u51fa\u7684\u8865\u96f6)
\u4e0d\u77e5\u697c\u4e3b\u53d1\u73b0\u6ca1\u6709\uff0c\u53f3\u79fb\u4e00\u4f4d\u5c31\u76f8\u5f53\u4e8e\u5c06\u539f\u6765\u7684\u6570\u9664\u4ee52\uff0c\u5de6\u79fb\u5c31\u76f8\u5f53\u4e8e\u5c06\u539f\u6765\u7684\u6570\u4e58\u4ee52.\u5c31\u50cf\u6211\u4eec\u7684\u5341\u8fdb\u5236\u7684\u5c0f\u6570\u70b9\u90a3\u6837

例如:

m = 1;

m <<= 2;意思就是把m左移两位后,再赋值给m。原来m的二进制数值是0001,左移两位后就变成了二进制的0100,也就是十进制的4,所以结果是m=4。

所以可以看出左移一位,相当于原来的数值乘以2,左移n位,就相当于乘以了2的n次方。

扩展资料:

移位运算符有双目移位运算符:<<(左移)和>>(右移)。移位运算符组成的表达式也属于算术表达式,其值为算术值。

左移运算是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补0。

右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定。在使用补码作为机器数的机器中,正数的符号位为0,负数的符号位为1。

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



给你举个例子
m = 1;
m <<= 2;意思就是把m左移两位后,再赋值给m。原来m的二进制数值是0001,左移两位后就变成了二进制的0100,也就是十进制的4,所以结果是m=4

所以可以看出左移一位,相当于原来的数值乘以2,左移n位,就相当于乘以了2的n次方

  • c璇█涓鐨勫彸绉诲拰宸︾Щ鏈浠涔鍖哄埆鍚?
    绛旓細5鐨勪簩杩涘埗琛ㄧず鏄101锛岄偅涔堝彸绉讳竴浣嶄箣鍚庢槸10灏辨槸2浜嗭紝鏄暣闄ょ殑锛宸︾Щ鐨勮瘽灏辨槸鍦ㄥ悗闈㈣ˉ涓涓浂锛岀浉褰撲簬鏄箻浠ヤ簩锛岄偅涔堝彉鎴愪簡1010锛屽崄杩涘埗鏄10銆101鍙崇Щ锛屽氨鏄妸鏈鍚庝竴浣嶆嬁鎺変簡锛屾槸10杩欎釜鏄簩杩涘埗鐨勶紝鍗佽繘鏄2锛5/2鏈潵鏄皬鏁帮紝浣嗚繖閲屾槸鏁存暟鎿嶄綔鐨勶紝鎵浠ユ妸灏忔暟閮ㄥ垎鍘绘帀浜嗐
  • 鍦C璇█涓11绉璧嬪杩愮畻绗︾殑鍏蜂綋鍚箟,鐢ㄦ硶?
    绛旓細=鏄彇妯″悗璧嬪锛+=鏄姞鍚庤祴鍊硷紝-= 鏄噺鍚庤祴鍊硷紝2.<<=鏄宸︾Щ鍚庤祴鍊硷紝鍙橀噺<<=琛ㄨ揪寮 宸︾Щ灏辨槸灏嗗乏杈圭殑鏁扮殑浜岃繘鍒跺悇浣嶅叏閮ㄥ乏绉昏嫢骞蹭綅锛屽彸杈圭殑鏁版寚瀹氱Щ鍔ㄤ綅鏁帮紝楂樹綅涓㈠純锛屼綆浣嶈ˉ0锛 绉诲嚑浣嶅氨鐩稿綋浜庝箻浠2鐨勫嚑娆℃柟銆3.>>=鏄彸绉诲悗锛屽彉閲>>=琛ㄨ揪寮忥紝鍙崇Щ杩愮畻绗︽槸鐢ㄦ潵灏嗕竴涓暟鐨勫悇浜岃繘鍒朵綅鍙...
  • c璇█涓殑宸璋冩暣鍜屽彸璋冩暣鏄粈涔堟剰鎬?
    绛旓細鍏堣宸︾Щ,宸︾Щ灏辨槸鎶婁竴涓暟鐨勬墍鏈変綅閮藉悜宸︾Щ鍔鑻ュ共浣,鍦C涓鐢<<杩愮畻绗.渚嬪:int i = 1;i = i << 2; //鎶奿閲岀殑鍊煎乏绉2浣 涔熷氨鏄,1鐨2杩涘埗鏄000...0001(杩欓噷1鍓嶉潰0鐨勪釜鏁板拰int鐨勪綅鏁版湁鍏,32浣嶆満鍣,gcc閲鏈31涓0),宸︾Щ2浣嶄箣鍚庡彉鎴 000...0100,涔熷氨鏄10杩涘埗鐨4,鎵浠ヨ...
  • c璇█涓綅杩愮畻鐨勫乏浣嶇Щ鍙充綅绉閮芥槸浠涔堟剰鎬
    绛旓細鍋囪0010宸︾Щ灏辨槸鎶婁簩杩涘埗鏁板悜宸︾Щ鍔锛屽彸杈硅ˉ0锛0鐨勪簩杩涘埗鍏ㄦ槸0锛屽乏绉讳箣鍚庡彸杈瑰啀琛0銆0010<<2 灏辨槸1000 瀹為檯鏄仛鐨*4銆1000>>2 璁$畻 0010 瀹為檯鍋氱殑鏄/4銆備綅绉讳綅杩愮畻绗︽槸灏嗘暟鎹湅鎴愪簩杩涘埗鏁帮紝瀵瑰叾杩涜鍚戝乏鎴栧悜鍙崇Щ鍔ㄨ嫢骞蹭綅鐨勮繍绠椼備綅绉讳綅杩愮畻绗﹀垎涓哄乏绉诲拰鍙崇Щ涓ょ锛屽潎涓哄弻鐩繍绠楃銆傜涓杩...
  • 鍦C璇█涓11绉璧嬪杩愮畻绗︾殑鍏蜂綋鍚箟,鐢ㄦ硶?
    绛旓細宸︾Щ灏辨槸灏嗐婂乏杈圭殑鏁扮殑浜岃繘鍒跺悇浣嶅叏閮ㄥ乏绉昏嫢骞蹭綅锛屻婂彸杈圭殑鏁版寚瀹氱Щ鍔ㄤ綅鏁帮紝楂樹綅涓㈠純锛屼綆浣嶈ˉ0锛岀Щ鍑犱綅灏辩浉褰撲簬涔樹互2鐨勫嚑娆℃柟 8.>>= 鍙崇Щ鍚庤祴鍊 鍙橀噺>>=琛ㄨ揪寮 鍙崇Щ杩愮畻绗︽槸鐢ㄦ潵灏嗕竴涓暟鐨勫悇浜岃繘鍒朵綅鍙崇Щ鑻ュ共浣嶏紝绉诲姩鐨勪綅鏁扮敱鍙虫搷浣滄暟鎸囧畾(鍙虫搷浣滄暟蹇呴』鏄潪璐熷)锛岀Щ鍒板彸绔殑浣庝綅琚垗寮冿紝...
  • C璇█涓鎬庢牱琛ㄧず绉讳綅鍟?渚嬪灏嗘煇涓宸︾Щ涓や綅
    绛旓細鍒╃敤浣嶆搷浣滐細"<<"灏辨槸宸︾Щ ">>"灏辨槸鍙崇Щ 涓句釜渚嬪瓙锛氬皢a宸︾Щ2浣嶏紝鐒跺悗璧嬬粰a a<<=2 涔熷嵆鏄痑=a<<2 鍦C璇█涓乏绉1浣嶏紝鐩稿綋浜庝箻2锛屽彸绉荤浉褰撲簬闄2銆
  • c璇█涓鐨>>鍜<<鍒嗗埆鏄粈涔堟剰鎬鍟?
    绛旓細C璇█涓鐨>>鍜<<鍒嗗埆鏄乏绉昏繍绠楃鍜屽彸绉昏繍绠楃锛岀敤浜庢暣鏁板湪浜岃繘鍒跺舰寮忕殑绉讳綅杩愮畻銆1銆佸乏绉昏繍绠楃锛<<锛夎鍒欙細鎸変簩杩涘埗褰㈠紡鎶婃墍鏈夌殑鏁板瓧鍚宸︾Щ鍔瀵瑰簲鐨勪綅鏁帮紝楂樹綅绉诲嚭(鑸嶅純)锛屼綆浣嶇殑绌轰綅琛ラ浂銆傝娉曟牸寮忥細闇瑕佺Щ浣嶇殑鏁板瓧 << 绉讳綅鐨勬鏁帮紝渚嬪锛 3 << 2锛屽垯鏄皢鏁板瓧3宸︾Щ2浣嶃傛暟瀛︽剰涔夛細鍦ㄦ暟瀛...
  • c璇█宸︾Щ闂
    绛旓細浣宸︾Щ姒傚康鏄乏杈瑰幓鎺塶涓簩杩涘埗浣嶏紝鍙宠竟琛涓浂锛屼絾杩欐槸鎸囧師鏉ョ殑浜岃繘鍒舵暟鏄滄満鍣ㄦ暟鈥濄傚氨鏄鏋滀娇鐢╱nsigned char 鏉ュ瓨鍌ㄨ繖涓暟鐨勮瘽锛屽氨鏄繖鏍风殑銆備緥濡傦細0001 0010锛堝崄杩涘埗涓18锛夊乏绉4浣嶏紝寰楀埌鐨勫簲璇ユ槸0010 0000锛堝崄杩涘埗32锛夛紝浣嗘槸18*16鈮32銆锛堟ā256锛夊綋宸︾Щ宸﹁竟涓嶅幓闆讹紝鍙宠竟鍗曠函琛ラ浂鐨勬椂鍊...
  • c璇█浣杩愮畻宸︿綅绉婚棶棰樸
    绛旓細涓嶅鍚э紝宸︾Щ搴旇鏄暣浣撳悜宸﹁竟绉诲姩锛屽y=x<<2,灏辨槸x鐨勫乏杈瑰幓鎺2浣嶏紝鍚庤竟琛2涓0锛岀粨鏋滃簲璇ユ槸锛01001100
  • c璇█涓|=鏄粈涔堟剰鎬
    绛旓細1銆C璇█涓鐨 >>= 鎰忔涓猴細鍙崇Щ鍚璧嬪 浠g爜绀轰緥涓猴細x = 8; x >>= 3;鍙崇Щ鍚庣粨鏋滀负锛00000000 00000000 00000000 00000001 2銆丆璇█涓殑 <<= 鎰忔濅负锛宸︾Щ鍚庤祴鍊 浠g爜绀轰緥涓猴細x = 8;x <<= 3;宸︾Щ鍚庤祴鍊肩粨鏋滀负锛00000000 00000000 00000000 01000000 3銆丆璇█涓殑 &= 鎰忔濅负锛氭寜浣嶄笌...
  • 扩展阅读:c++数组让用户赋值 ... c++和python先学哪个 ... c++怎么给数组赋值 ... c++类数组如何进行赋值 ... c++和java哪个好就业 ... c++如何给变量赋值 ... c++语言中怎么保留6位 ... c++怎么赋值 ... c语言和c++先学哪个好 ...

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