C語言運算子的運用

2021-08-30 04:37:09 字數 2059 閱讀 4677

1、編寫函式:

unsigned int reverse_bit(unsigned int value);

這個函式的返回值value的二進位制位模式從左到右翻轉後的值。

如:在32位機器上25這個值包含下列各位:

00000000000000000000000000011001

翻轉後:(2550136832)

10011000000000000000000000000000

程式結果返回:

2550136832

1、reverse向右移動,如0000 0000 0000 0000 

2、num>>bit    這裡是取num的每乙個二進位制的值,如25    0000 0000 0001 1001  &1就是取第一位 

3、然後或給reverse   reverse就成了0000 0000 0000 0001

4、回到第一步,reverse右移,reverse 0000 0000 0000 0010 ——> 0000 0000 0000 0011

5、總共移動32次就翻轉完成

//c語言

#define _crt_secure_no_warnings

#include#includevoid reverse_bit(unsigned int num)

printf("\n");

printf("%u翻轉後的二進位制為:",num);

unsigned int reverse = 0;

for (unsigned int bit = 0; bit < 32; ++bit)

printf("\n");

printf("現在的數為:%u\n",reverse); }

void main()

reverse_bit(input);

break;

} system("pause");

}

2.程式設計實現:

一組資料中只有乙個數字出現了一次。其他所有數字都是成對出現的。

請找出這個數字。(使用位運算

這裡使用異或運算子。

^:不同為1 ,相同為0

它的特點就是異或乙個數兩次等於沒有異或。

如 二進位制就是

然後 1^2-->01^10-->11-->11^10-->01-->01^11-->10-->10^11-->01

這樣就找到了單獨的數

//c語言

#define _crt_secure_no_warnings

#include#includevoid main() ;

int temp = 1;

while (temp<9)

printf("單神數是%d\n",arr[0]);

system("pause");

}

3.寫乙個函式返回引數二進位制中 1 的個數

比如: 15 0000 1111 4 個 1

程式原型:

int count_one_bits(unsigned int value)

//c語言

void to_count_one_bits(int num)

printf("%d",(num>>bit)&1);

++bit;

}printf("\n");

printf("%d的二進位制1的個數為:%d\n",num,count);

}

4.獲取乙個數二進位制序列中所有的偶數字和奇數字,分別輸出二進位制序列。

//c語言

void to_show_odd_even(int num)

printf("\n");

printf("%d的奇數字是:",num);

bit = 1;//初始化bit

while (bit<32)

printf("\n");

}

C語言 運算子與 運算子

我們平時使用帶參巨集時,字串中的巨集引數是沒有被替換的。例如 輸出結果為 然而,我們期望輸出的結果是 5 20 2513 14 27 這該怎麼做呢?其實,c語言允許在字串中包含巨集引數。在類函式巨集 帶參巨集 中,號作為乙個預處理運算子,可以把記號轉換成字串。例如,如果a是乙個巨集形參,那麼 a就是...

C語言 運算子和 運算子

變數 代表 取變數的位址 變數 代表 指標型的變數 取址運算子 用來取得其運算元的位址。如果運算元 x 的型別為 t,則表示式 x 的型別是 t 型別指標 指向 t 的指標 取址運算子的運算元必須是在記憶體中可定址到的位址。換句話說,該運算子只能用於函式或物件 例如左值 而不可以用於位欄位,以及那些...

擴充套件運算子的運用

es5 的寫法 函式呼叫 function f x,y,z var args 0 1,2 f.null args es6的寫法 function f x,y,z let args 0 1,2 f args es5 的寫法 math.max.null,14,3,77 es6 的寫法 math.max ...