初階C-1121
阿新 • • 發佈:2018-12-02
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);
}
在操作符總結完之後做的一些題。我個人覺得總結完之後,上手是非常容易的。