为什么带进位位的左移或者右移就相当于/2或者*2呢。。如果进位位是1呢 单片机里RL A是循环向左移一位(不带进位),为什么相当于把...
\u5e26\u8fdb\u4f4d\u5faa\u73af\u53f3\u79fb\u6307\u4ee4 \u6211\u4e0d\u660e\u767d\u4e0d\u5e26\u8fdb\u4f4d\u5faa\u73af\u53f3\u79fb\u6307\u4ee4\u548c\u5e26\u8fdb\u4f4d\u5faa\u73af\u53f3\u79fb\u6307\u4ee4\u7684\u533a\u522b\u554a ~~~~\u4e3a\u4ec0\u4e48\u4f1a\u6709\u8fdb\u4f4d\u5462\uff1f
\u8fd9\u53ea\u7275\u626f\u5230\u6709\u7b26\u53f7\u6570
\u4e00\u4e2a\u6570\u7684\u7b2c\u4e00\u4f4d\u5982\u679c\u662f1\u5c31\u662f\u8d1f\u6570\uff0c0\u5c31\u662f\u6b63\u6570\uff0c\u8fd9\u4e2a\u77e5\u9053\u5427
\u5faa\u73af\u53f3\u79fb\uff0c\u4f1a\u628a\u6700\u540e1\u4f4d\u653e\u5230\u7b2c\u4e00\u4f4d\uff0c\u6240\u4ee5\u5462\uff0c\u5faa\u73af\u53f3\u79fb\u4f1a\u6539\u53d8\u64cd\u4f5c\u6570\u7684\u7b26\u53f7\uff0c\u5bf9\u4e0d\u5bf9\uff1f
\u5982\u679c\u662f\u4e0d\u5e26\u8fdb\u4f4d\uff0c\u5c31\u4f1a\u51fa\u73b0\u6b63\u6570\u53d8\u8d1f\u6570\u7684\u60c5\u51b5\u3002
\u5e26\u8fdb\u4f4d\uff0c\u5c31\u662f\u628a\u8d1f\u6570\u770b\u4f5c\u662f\u591a\u4e00\u4f4d\u7684\u6b63\u6570\uff0c\u76f8\u5f53\u4e8e\u6ea2\u51fa\u8fdb\u4f4d\uff0c\u57fa\u672c\u601d\u60f3\u5c31\u662f\u8fd9\u6837\uff0c\u60f3\u4e86\u89e3\u66f4\u591a\u5c31\u6d4b\u8bd5\u51e0\u4e2a\u6570\u636e\u770b\u770b\u54c8
\u4f60\u8bf4\u7684 \u76f8\u5f53\u4e8e\u628aA\u4e582 \u662f\u9488\u5bf9\u6700\u9ad8\u4f4d\u4e3a0\u65f6\u7684\u60c5\u51b5
0001B \u5de6\u79fb\u4e00\u4f4d 0010B 0001B\u662f\u5341\u8fdb\u5236\u76841 \u800c0010B\u662f\u5341\u8fdb\u5236\u76842
0010B \u5de6\u79fb\u4e00\u4f4d 0100B 0100B\u662f\u5341\u8fdb\u5236\u76844
0100B \u5de6\u79fb\u4e00\u4f4d 1000B 1000B\u662f\u5341\u8fdb\u5236\u76848
\u5e94\u8be5\u77e5\u9053\u4e3a\u4ec0\u4e48\u662f\u4e582\u4e86\u5427
这个嘛你要搞清楚存整数的储形式,一般整数在计算机里都是按二进制补码形式存储。
for example:
整数10的二进制形式为00001010(这里假设用8位表示),那么左移一位就变成了00010100,这刚好对应20,如果右移一位就变成了00000101,刚好对应5。
不知道你听明白了没。
绛旓細1.鍥犱负鏄宸︾Щ锛屾墍浠ユ棤鎵璋撶畻鏈垨鑰呴昏緫銆2.涓涓瓧鑺8浣嶏紝宸︾Щ7浣嶅氨鍙墿涓嬩竴浣嶄簡鏈浣庝竴浣嶏紝浠庡悗涓瀛楄妭涓嶄笂7浣嶏紱杩欏拰鍙崇Щ涓浣嶏紙甯﹁繘浣寰幆鍙崇Щ锛屾渶浣庝綅鍦–F涓繚鐣欎笅鏉ワ級锛屽苟鎶婅繖涓浣嶅甫杩涗綅寰幆绉诲叆鍚庝竴瀛楄妭锛屽嚑涔庢病鏈夊樊鍒紝鑰屼笖鏇村鏄撳鐞嗐傚锛欰55AA55AH 10100101010110101010010101011010琛7涓0 ...
绛旓細甯﹁繘浣鐨勫惊鐜宸︾ЩRCL(Rotate Left Through Carry)锛氱敤鍘烠F鐨勫煎~琛ョ┖鍑虹殑浣嶏紝绉诲嚭鐨勪綅鍐嶈繘鍏F銆 鍋囪褰撳墠锛孉L=0涓0涓00涓涓B锛孋F=涓锛屽垯 鎵ц鎸囦护 ROL AL,涓 鍚庯紝AL=涓0涓00涓涓0B锛孋F=0 鎵ц鎸囦护 RCL AL,涓 鍚庯紝AL=涓0涓00涓涓涓B锛孋F=0 鏈鍚庝竴浣嶇殑涓锛屾槸鍏堝墠CF鐨 ...
绛旓細鏍煎紡锛歊OL(鎴朢OR) OPR,CNT寰幆宸︾Щ/鍙崇Щ鎸囦护鍙槸绉讳綅鏂瑰悜涓嶅悓锛屽畠浠Щ鍑虹殑浣嶄笉浠呰杩涘叆CF锛岃屼笖杩樿濉ˉ绌哄嚭鐨勪綅銆傚彲浠ョ悊瑙d负铔囧挰灏惧反鍨嬪惊鐜甯﹁繘浣嶇殑寰幆宸︾ЩRCL锛圧otate Left Through Carry锛夊拰甯﹁繘浣嶇殑寰幆鍙崇ЩRCR锛圧otate Right锛夈傛牸寮忥細RCL锛堟垨RCR锛夈OPR, CNT甯﹁繘浣嶇殑寰幆宸︾Щ/鍙崇Щ鎸囦护鍙湁...
绛旓細鍙湁绠楁湳鍙崇Щ鍜岄昏緫鍙崇Щ鏄笉鍚岀殑銆傜畻鏈宸︾Щ濂藉儚浼氭妸璐熺殑鏁板彉鎴愭鐨勶紝 杩欏彞璇濅笉姝g‘ 渚嬪鏈変釜鏁扮殑浜岃繘鍒舵槸1000 0000B = -128, 閭d箞鎴戠幇鍦ㄦ妸瀹冨乏绉1浣嶏紝灏卞彉鎴愪簡1 0000 0000B = -256锛屽緢鏄庢樉1000 0000 宸︾Щ涓浣嶄笉鏄皢鏁板(璐-128)鍙樻垚姝f暟 杩樻湁渚嬪鏈変釜鏁颁簩杩涘埗鏄 0000 1000 = 8, 閭d箞...
绛旓細姹囩紪鎸囦护SL,SLC,SR,SRC 浼拌鏄乏绉 甯﹁繘浣嶅乏绉 鍙崇Щ 甯﹁繘浣嶅彸绉
绛旓細涓嬪浘鏄宸︾Щ鐨勪緥瀛愶紝鍙灏嗗浘涓殑灏嗗ご鎹釜鏂瑰悜锛屽氨鏄鍙崇Щ浜嗐
绛旓細涓嶆槸鍟110鍚宸︾Щ鍔ㄧЩ浣嶄负1100锛岀浉褰撲簬鍦ㄦ渶鍚庤ˉ绉讳綅0鍟婏紝鍊肩浉褰撲簬鍘熸潵鐨2鍊嶏紝鎵浠4鍚戝乏绉讳袱浣嶅悗灏辨槸4*2*2=16鍟
绛旓細閫昏緫宸︾Щ涓庣畻鏈乏绉昏櫧鐒跺湪鍏蜂綋鎿嶄綔涓婃槸涓鏍风殑,浣嗕竴鑸潵璇,瀵逛簬鏃犵鍙锋暟鏄敤閫昏緫宸︾Щ,瀵逛簬鏈夌鍙锋暟鏄敤绠楁湳宸︾Щ(涓汉璁や负杩欐牱鐨勮瘽绋嬪簭鍐欏嚭鏉ヤ篃鍙互璁╀汉鏄庣櫧鎿嶄綔鏁版槸鏈夌鍙疯繕鏄棤绗﹀彿),甯﹁繘浣寰幆宸︾Щ鐨勬搷浣滃氨鐩稿綋浜庢妸杩涗綅CF褰撲綔鎿嶄綔鏁扮殑鏈楂樹綅(鍗冲悎骞跺湪涓璧),鐒跺悗杩涜寰幆宸︾Щ ...
绛旓細A寰幆宸︾Щ鎸囩殑鏄疍0浣嶅悜D7浣嶄緷娆绉诲姩,姣斿1111 1110,宸︾Щ涓浣嶅悗涓1111 1101,绫绘帹,褰撲负0111 1111鏃,宸︾Щ鍚庝负1111 1110,C涓嶅弬涓庣Щ浣.A甯﹁繘浣寰幆宸︾Щ鎸囩殑鏄疍0浣嶅悜D7浣嶄緷娆$Щ鍔,骞朵笖C浣嶅弬涓庣Щ浣.姣斿1111 1110,C涓0,宸︾Щ涓浣嶅悗涓1111 1100,C涓1....
绛旓細鏈瑕佺粌涔犵殑鏄甯﹁繘浣绉讳綅,甯﹁繘浣嶅姞娉 clr c;RLCR1,RLC R0.杩欎釜缁撴灉鍐嶅姞涓婏紙R0R1锛夈傚氨鏄箻浠3鐨勭粨鏋溿傜粨鏋滄斁鍒癛2R3锛屽緢涔呮病鏈夌敤51浜嗭紝鎸囦护閮藉繕浜嗐備絾鏄繖涓鐩病鏈夎冭檻婧㈠嚭銆傛瘮濡侳FFF脳3鍚庡氨涓嶆16浣嶄簡銆俁2R3鏀句笉涓嬩簡