//1個位元組又是8位二進位制數 1kb = 8b
int a = 010 + 010;//0開頭是八進位制
//0b開頭是二進位制 0x開頭是十六進製制
printf("%x", a);//%o列印八進位制 %x列印十六進製制
//位運算子, 先換成二進位制數然後再計算
//按位與&(同為1,則為1,否則為0)
printf("%d\n", 7 & 5);
//按位或|(只要有乙個為1,則為1,否則為0)
printf("%d\n", 7 | 5);
//按位非~
printf("%d\n", ~ 6 );
//按位 異或^(相同為0,不同為1)
// 3 = 011
// 5 = 101
// 6 = 110
printf("%d\n", 3 ^ 5);
//左移運算子 << (左移一位乘2)
// 0000 0010
printf("%d\n", 2 << 2);
//右移運算子 >> (右移一位除2)
// 0001 0000
// 0000 1000
printf("%d\n", 14 >> 5);
二進位制數的高四位和低四位互
unsigned char a = 130;
unsigned char left = 0;//儲存左移之後的結果
unsigned char right = 0;//儲存右移之後的結果
left = a << 4;
right = a >> 4;
printf("%d", left | right);
二進位制數的奇偶位互換
如果想做清零操作,
使用按位與, 清零位為0,保留位為1
unsigned char b = 0b10110111;
unsigned char left = 0;//儲存左移之後的結果
unsigned char right = 0;//儲存右移之後的結果
(1)先左移一位
left = b << 1;
(2)儲存偶數字,將奇數字清零
left = left & 0b10101010;
(3)右移一位
right = b >> 1;
(4)保留奇數字,將偶數字清零
right = right & 0b01010101;
(5)按位或
printf("%d\n", left | right);
棧區記憶體分配原則:從高到低分配,從低到高訪問
c c 函式指標(Hook前奏1)
二 宣告方法 實現 c c typedef定義函式指標 hook前奏2 函式指標是指向函式的指標變數。因此 函式指標 本身首先應是指標變數,只不過該指標變數指向函式。函式指標,最後兩個字是指標,因此它是指標變數,只不過這指標指向了函式 例如 int fun int x,int y 指標函式,最後兩個...
進製轉換(任意進製轉換)
a進製轉b進製 思想 a進製轉十進位制 十進位制轉b進製 a進製轉十進位制 include include includeusing namespace std const int p 16 p代表 a進製 int main cout 十進位制轉b進製 include includeusing na...
進製進製進製 轉換
從剛學計算機就對進製轉換有著莫名的反感,2進製 8進製 10進製 16進製制各種轉換。下面就說下邏輯位址轉換成實體地址的求法吧 首先,使用者輸入乙個16進製制的數字cin hex logic add hex的意思是告訴計算機輸入的數是以16進製制方式輸入的 這個時候你要是輸出cout cout 經過...