進製轉換,指標前奏,奇偶互換,左移,右移

2021-06-23 02:45:07 字數 1342 閱讀 9433

//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 經過...