我們有下面的測試代碼:
#include <iostream>using namespace std;int main(){ int num1=7; cout<<"num1(7)<<2: "<<(num1<<2)<<endl; cout<<"num1(7)>>2: "<<(num1>>2)<<endl; int num2=-7; cout<<"num2(-7)<<2: "<<(num2<<2)<<endl; cout<<"num2(-7)>>1: "<<(num2>>1)<<endl; cout<<"num2(-7)>>2: "<<(num2>>2)<<endl; return 0;}
對于正數的移位操作:
7的二進制碼為0111
當左移2位時(右邊補0):11100 十進制28
當右移2位時(左邊補0):001 十進制1
-7的二進制碼1111
當左移兩位時:111100(最高位為符號位) 十進制-28
當右移1位時 二進制碼為1111 取反加一為補碼 1001,再右移1位為0100 加上符號位為-4
當右移2位時 二進制碼為1111 取反加一為補碼 1001,再右移2位為0010 加上符號位為-2
以上就是小編為大家帶來的關于移位操作的一點重要說明全部內容了,希望大家多多支持武林網~
新聞熱點
疑難解答
圖片精選