位移位运算符 移位运算符在移位操作中,无论左移还是右移,所移出的空位一律补...

C\u8bed\u8a00\u5de6\u4f4d\u79fb\u8fd0\u7b97\u7b26\u548c\u53f3\u4f4d\u79fb\u8fd0\u7b97\u7b26\u662f\u4ec0\u4e48\u610f\u601d\uff0c\u600e\u4e48\u8fd0\u7b97,\u4e3e\u4e2a\u4f8b\u5b50..

\u5c31\u662f\u628a\u4e00\u4e2a\u6570\u8f6c\u5316\u6210\u4e8c\u8fdb\u5236\u518d\u76f4\u63a5\u5bf9\u4ed6\u8fdb\u884c\u64cd\u4f5c
\u4f8b\u5982\uff1a
45>>2 //45\u53f3\u79fb\u4e24\u4f4d
45\u7684\u4e8c\u8fdb\u5236\u4e3a\uff1a101101
\u53f3\u79fb\u4e24\u4f4d\u5c31\u4e3a\uff1a 001011
001011\u518d\u8f6c\u5316\u4e3a\u5341\u8fdb\u5236\u4e3a\uff1a11
\u6240\u4ee545>>2= 11
\u5de6\u79fb\u8fd0\u7b97\u7b26
45<<2
45\u7684\u4e8c\u8fdb\u5236\u4e3a\uff1a101101
\u5de6\u79fb\u4e24\u4f4d\u5c31\u4e3a\uff1a10110100
10110100\u518d\u8f6c\u5316\u4e3a\u5341\u8fdb\u5236\u4e3a\uff1a180
\u6240\u4ee545<<2=180

\u79fb\u4f4d\u64cd\u4f5c\u5728\u7a0b\u5e8f\u8bbe\u8ba1\u4e2d\uff0c\u4f4d\u64cd\u4f5c\u8fd0\u7b97\u7b26\u7684\u4e00\u79cd\u3002
1.\u5728c++\u4e2d\uff0c\u79fb\u4f4d\u8fd0\u7b97\u7b26\u6709\u53cc\u76ee\u79fb\u4f4d\u8fd0\u7b97\u7b26\uff1a>\uff08\u53f3\u79fb\uff09\u3002\u79fb\u4f4d\u8fd0\u7b97\u7b26\u7ec4\u6210\u7684\u8868\u8fbe\u5f0f\u4e5f\u5c5e\u4e8e\u7b97\u672f\u8868\u8fbe\u5f0f\uff0c\u5176\u503c\u4e3a\u7b97\u672f\u503c\u3002
2.\u5de6\u79fb\u8fd0\u7b97\u662f\u5c06\u4e00\u4e2a\u4e8c\u8fdb\u5236\u4f4d\u7684\u64cd\u4f5c\u6570\u6309\u6307\u5b9a\u79fb\u52a8\u7684\u4f4d\u6570\u5411\u5de6\u79fb\u4f4d\uff0c\u79fb\u51fa\u4f4d\u88ab\u4e22\u5f03\uff0c\u53f3\u8fb9\u7684\u7a7a\u4f4d\u4e00\u5f8b\u88650\u30023.\u53f3\u79fb\u8fd0\u7b97\u662f\u5c06\u4e00\u4e2a\u4e8c\u8fdb\u5236\u4f4d\u7684\u64cd\u4f5c\u6570\u6309\u6307\u5b9a\u79fb\u52a8\u7684\u4f4d\u6570\u5411\u53f3\u79fb\u52a8\uff0c\u79fb\u51fa\u4f4d\u88ab\u4e22\u5f03\uff0c\u5de6\u8fb9\u79fb\u51fa\u7684\u7a7a\u4f4d\u6216\u8005\u4e00\u5f8b\u88650\uff0c\u6216\u8005\u8865\u7b26\u53f7\u4f4d\uff0c\u8fd9\u7531\u4e0d\u540c\u7684\u673a\u5668\u800c\u5b9a\u3002
\u5728\u4f7f\u7528\u8865\u7801\u4f5c\u4e3a\u673a\u5668\u6570\u7684\u673a\u5668\u4e2d\uff0c\u6b63\u6570\u7684\u7b26\u53f7\u4f4d\u4e3a0\uff0c\u8d1f\u6570\u7684\u7b26\u53f7\u4f4d\u4e3a1\u3002

要了解移位运算,需明白二进制计数

以单字节为例,比如0x55=0b01010101

如果将该数值左移1位,就变成了 0b10101010(最右边这个0是移空了以后补的),这个数值是0xaa

从数学上看,左移1位等于乘以2,右移1位等于除以2,然后再取整,移位溢出的丢弃。

例如:

unsigned char a;
a=1; //0b00000001
a<<=1; //0b00000010 a左移1位等效于a=a*2
a<<=2; //0b00001000 a左移2位等效于a=a*2的2次方(4)
a<<=3; //0b01000000 a左移1位等效于a=a*2的3次方(8)
a<<=1; //0b10000010 a左移1位等效于a=a*2
a<<=1; //0b00000000 a再次左移1位后溢出了,结果变成0了

c=a<<b; 在变量都是8位的时候,等效于 c=(a*pow(2,b))%256

要了解移位运算,需明白二进制计数
以单字节为例,比如0x55=0b01010101
如果将该数值左移1位,就变成了
0b10101010(最右边这个0是移空了以后补的),这个数值是0xaa
从数学上看,左移1位等于乘以2,右移1位等于除以2,然后再取整,移位溢出的丢弃。
例如:
unsigned
char
a;
a=1;
//0b00000001
a<<=1;
//0b00000010
a左移1位等效于a=a*2
a<<=2;
//0b00001000
a左移2位等效于a=a*2的2次方(4)
a<<=3;
//0b01000000
a左移1位等效于a=a*2的3次方(8)
a<<=1;
//0b10000010
a左移1位等效于a=a*2
a<<=1;
//0b00000000
a再次左移1位后溢出了,结果变成0了
c=a<<b;
在变量都是8位的时候,等效于
c=(a*pow(2,b))%256

  • 绉讳綅杩愮畻绗鏈夊摢浜,鍚勮〃绀轰粈涔堟剰鎬?
    绛旓細1銆佸乏绉昏繍绠楃锛<<锛夛細鎸変簩杩涘埗褰㈠紡鎶婃墍鏈夌殑鏁板瓧鍚戝乏绉诲姩瀵瑰簲鐨勪綅鏁帮紝楂樹綅绉诲嚭(鑸嶅純)锛屼綆浣嶇殑绌轰綅琛ラ浂銆傛牸寮忥細闇瑕佺Щ浣嶇殑鏁板瓧 << 绉讳綅鐨勬鏁 渚嬪锛3<<2 3杞崲涓轰簩杩涘埗鏄0011锛屾墍鏈夋暟瀛楀乏绉2涓綅缃紝绌轰綅琛0锛屽緱鍒1100锛屽嵆鍗佽繘鍒舵暟12銆2銆佸彸绉昏繍绠楃锛>>锛夛細鎸変簩杩涘埗鎶婃墍鏈夌殑鏁板瓧鍚戝彸绉诲姩瀵瑰簲...
  • verilog涓绉讳綅鎿嶄綔绗﹀彿
    绛旓細verilog涓Щ浣嶆搷浣滅鍙锋湁2绉嶏紝鍒嗗埆鏄<<鈥濆乏绉讳綅杩愮畻绗﹀拰鈥>>鈥濆彸绉讳綅杩愮畻绗銆傛牸寮忓涓嬶細a<<n锛宎>>n銆傚叾涓紝a浠h〃瑕佺Щ浣嶇殑鎿嶄綔鏁帮紝n浠h〃瑕佺Щ鍑犱綅銆備袱绉嶈繍绠楁柟寮忛兘鐢0鏉ュ~琛ョЩ鍑虹殑绌轰綅銆傜Щ浣嶆搷浣滅瀵瑰乏杈圭殑鎿嶄綔鏁拌繘琛屽悜宸︽垨鍚戝彸鐨勪綅绉讳綅鎿嶄綔锛岀浜屼釜鎿嶄綔鏁帮紝绉讳綅浣嶆暟鏄棤绗﹀彿鏁帮紝閬靛惊鐨勬搷浣滆寰...
  • C璇█涓>>鍜<<濡備綍浣跨敤?
    绛旓細C璇█涓<< 浠h〃宸︾Щ杩愮畻绗︼紝>> 浠h〃鍙崇Щ杩愮畻绗︼紝浣嶇Щ浣嶈繍绠楃鏄皢鏁版嵁鐪嬫垚浜岃繘鍒舵暟锛屽鍏惰繘琛屽悜宸︽垨鍚戝彸绉诲姩鑻ュ共浣嶇殑杩愮畻銆<< 浠h〃宸︾Щ杩愮畻绗︼細宸︾Щ杩愮畻绗︾敤鏉ュ皢涓涓暟鐨勫悇浜岃繘鍒朵綅鍏ㄩ儴宸︾Щ鑻ュ共浣嶏紝绉诲姩鐨勪綅鏁扮敱鍙虫搷浣滄暟鎸囧畾锛屽彸鎿嶄綔鏁板繀椤绘槸闈炶礋鍊硷紝鍏跺彸杈圭┖鍑虹殑浣嶇敤0濉ˉ锛岄珮浣嶅乏绉绘孩鍑哄垯鑸嶅純...
  • 浣嶇Щ浣嶈繍绠楃
    绛旓細绉讳綅杩愮畻绗︺浣嶉昏緫杩愮畻绗︼細&鎸変綅涓庯紝|鎸変綅鎴栵紝^鎸変綅寮傛垨锛寏鍙栧弽 绉讳綅杩愮畻绗︼細<<宸︾Щ锛>>鍙崇Щ --- &鎸変綅涓庤繍绠楃锛氫簩杩涘埗涓繍绠,0&0=0,0&1=0,1&0=0,1&1=1锛岀浉褰撲簬甯冨皵鍨嬬殑涓庤繍绠 |鎸変綅鎴栬繍绠楃锛氫簩杩涘埗涓繍绠楋紝0|0=0,0|1=1,1|0=1,1|1=1锛岀浉褰撲簬甯冨皵鍨嬬殑鎴栬繍绠 ^鎸...
  • .C璇█涓,<<鏄粈涔堟剰鎬
    绛旓細浣嶇Щ浣嶈繍绠楃鏄皢鏁版嵁鐪嬫垚浜岃繘鍒舵暟锛屽鍏惰繘琛屽悜宸︽垨鍚戝彸绉诲姩鑻ュ共浣嶇殑杩愮畻銆備綅绉讳綅杩愮畻绗﹀垎涓哄乏绉诲拰鍙崇Щ涓ょ锛屽潎涓哄弻鐩繍绠楃銆傜涓杩愮畻瀵硅薄鏄Щ浣嶅璞★紝绗簩涓繍绠楀璞℃槸鎵绉荤殑浜岃繘鍒朵綅鏁般傜Щ浣嶆椂锛岀Щ鍑虹殑浣嶆暟鍏ㄩ儴涓㈠純锛岀Щ鍑虹殑绌轰綅琛ュ叆鐨勬暟涓庡乏绉昏繕鏄彸绉昏姳鎺ユ湪鏈夊叧銆傚鏋滄槸宸︾Щ锛屽垯瑙勫畾琛ュ叆鐨勬暟...
  • 绉讳綅杩愮畻鎬庝箞璁$畻
    绛旓細绉讳綅杩愮畻绗缁勬垚鐨勮〃杈惧紡涔熷睘浜庣畻鏈〃杈惧紡锛屽叾鍊间负绠楁湳鍊笺傚乏绉昏繍绠楁槸灏嗕竴涓簩杩涘埗浣嶇殑鎿嶄綔鏁版寜鎸囧畾绉诲姩鐨勪綅鏁板悜宸︾Щ鍔紝绉诲嚭浣嶈涓㈠純锛屽彸杈圭Щ鍑虹殑绌轰綅涓寰嬭ˉ0銆傚彸绉昏繍绠楁槸灏嗕竴涓簩杩涘埗浣嶇殑鎿嶄綔鏁版寜鎸囧畾绉诲姩鐨勪綅鏁板悜鍙崇Щ鍔紝绉诲嚭浣嶈涓㈠純锛屽乏杈圭Щ鍑虹殑绌轰綅涓寰嬭ˉ0锛屾垨鑰呰ˉ绗﹀彿浣嶏紝杩欑敱涓嶅悓鐨勬満鍣ㄨ屽畾銆傚湪...
  • C璇█涓浣嶇Щ浣嶈繍绠楃?
    绛旓細浣嶇Щ浣嶈繍绠楃锛岄【鍚嶆濊锛岀敤鏉ョЩ浣嶇敤銆傚锛歛=0x01;a <<=2;鍒欙紝a鍙樻垚0x04浜嗐備笂闈㈡槸宸︾Щ锛屽鏋滃彸绉绘槸a >>= 2;
  • C璇█浣嶈繍绠
    绛旓細绉讳綅杩愮畻绗<<鍜>>灏嗗乏渚х殑鎿嶄綔鏁板乏绉绘垨鑰呭彸绉诲彸鎿嶄綔鏁扮粰瀹氱殑鏁扮洰锛屽彸鎿嶄綔鏁板繀椤婚潪璐熴傚洜姝 << 2灏唜鐨勫煎悜宸︾Щ鍔ㄤ袱浣嶏紝鐢0濉厖绌轰綅锛涜繖鐩稿綋浜庝箻4銆傚彸绉讳竴涓棤绗﹀彿鏁颁細鐢0杩涜濉厖銆傚彸绉讳竴涓甫绗﹀彿鏁板湪鏌愪簺鏈哄櫒涓婁細鐢ㄧ鍙蜂綅杩涜濉厖锛堚滅畻鏁扮Щ浣嶁濓級鑰屽湪鍏朵粬鏈哄櫒涓婁細鐢0杩涜濉厖锛堚滈昏緫绉讳綅鈥...
  • 绉讳綅杩愮畻绗鍦ㄧЩ浣嶆搷浣滀腑,鏃犺宸︾Щ杩樻槸鍙崇Щ,鎵绉诲嚭鐨勭┖浣嶄竴寰嬭ˉ0銆傝繖鍙...
    绛旓細1.鍦╟++涓紝绉讳綅杩愮畻绗鏈夊弻鐩Щ浣嶈繍绠楃锛<<锛堝乏绉伙級鍜>>锛堝彸绉伙級銆傜Щ浣嶈繍绠楃缁勬垚鐨勮〃杈惧紡涔熷睘浜庣畻鏈〃杈惧紡锛屽叾鍊间负绠楁湳鍊笺2.宸︾Щ杩愮畻鏄皢涓涓簩杩涘埗浣嶇殑鎿嶄綔鏁版寜鎸囧畾绉诲姩鐨勪綅鏁板悜宸︾Щ浣嶏紝绉诲嚭浣嶈涓㈠純锛屽彸杈圭殑绌轰綅涓寰嬭ˉ0銆3.鍙崇Щ杩愮畻鏄皢涓涓簩杩涘埗浣嶇殑鎿嶄綔鏁版寜鎸囧畾绉诲姩鐨勪綅鏁板悜鍙崇Щ鍔紝绉诲嚭...
  • JAVA涓変釜绉讳綅杩愮畻绗鏄暐鎰忔 << 銆>> 銆>>>
    绛旓細鈥>> 鍙绉,楂樹綅琛ョ鍙蜂綅鈥 杩欓噷鍙崇Щ涓浣嶈〃绀洪櫎2 鈥>>> 鏃犵鍙峰彸绉,楂樹綅琛0鈥濓紱 涓>>绫讳技 鈥<< 宸︾Щ鈥 宸︾Щ涓浣嶈〃绀轰箻2锛屼簩浣嶅氨琛ㄧず4锛屽氨鏄2鐨刵娆℃柟
  • 扩展阅读:移位运算器 ... 移位运算计算器 ... &运算符 ... verilog移位运算符 ... 位运算符 ... α氢和β氢的位置在哪儿 ... 位移的符号是s还是x ... 双符号位移位 ... 位运算符的运算规则 ...

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