1. 程式人生 > >初階C-1121

初階C-1121

1.寫一個函式返回引數二進位制中 1 的個數 ,比如:15 —> 0000 1111 中4個1。

int count_one_bits(unsigned int value){
	int count  = 0;
	for (int i = 0; i < 32; i++){
		if (((value >> i) & 1) == 1){
			count++;
		}
	}
	printf("%d\n", count);
	// 返回 1的位數 
}

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

int Print_col(unsigned
int value){ //二進位制的奇偶數位是從低位0123456開始算起 int odd;//奇數 int even;//偶數 printf("偶數的序列:"); for (int i = 0; i < 32; i += 2){ even = (value >> i) & 1; printf("%d ", even); } printf("\n"); printf("奇數的序列:"); for (int j = 1; j < 32; j += 2){ odd = (value >> j) & 1; printf("%d "
, odd); } return 0; }

3.輸出一個整數的每一位。

void Print_num(){
	printf("請輸入數:");
	int x;
	scanf("%d", &x);
	while (x){
		printf("%d ", x % 10);
		x /= 10;
	}
}

4.兩個int(32位)整數m和n的二進位制表達中,有多少個位(bit)不同?

輸入例子: 1999 2299 輸出例子:7

void diff_bit(){
	int m, n,num,count = 0;
	printf("請輸入兩個數:");
	scanf("%d %d"
, &m, &n); num = m ^ n; for (int i = 0; i < 32; i++){ if (((num >> i) & 1) == 1){ count++; } } printf("%d", count); }

在操作符總結完之後做的一些題。我個人覺得總結完之後,上手是非常容易的。