用宏將一個數字的奇數位和偶數位交換和使用宏實現兩個數中求較大值

#include<stdio.h>
#include<windows.h>

//用宏將一個數字的奇數位和偶數位交換
#define Swap(num) (num&(0x55555555))<<1|(num&(0xAAAAAAAA))>>1
// 奇數左移一位,偶數右移一位,再或 
//用0xAAAAAAAA與num相與求的奇數位上數字(偶數位上數字爲0)
//用0x55555555與num相與求的偶數位上數字(奇數位上數字爲0)

//使用宏實現兩個數中求較大值
#define MAX(x,y) x > y ? x:y

int main()
{
    int num = 10;
    printf("交換後值:%d\n", Swap(num));
    printf("MAX = %d\n", MAX(3, 2));
    system("pause");
    return 0;
}

這裏寫圖片描述

發佈了57 篇原創文章 · 獲贊 12 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章