首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言位運算技巧:判斷奇偶數

     編輯:關於C語言

C 語言位運算技巧:判斷奇偶數

利用二進制最低位(LSB)特性:奇數 LSB=1,偶數 LSB=0。透過 & 1 即可高效判斷,無需取模運算。

實作程式碼

#include <stdio.h>

void judge_odd_even(int a) {
    if ((a & 1) == 0) {
        printf("%d 是偶數\n", a);
    } else {
        printf("%d 是奇數\n", a);
    }
}

int main() {
    judge_odd_even(0);  // 偶數
    judge_odd_even(1);  // 奇數
    judge_odd_even(4);  // 偶數
    judge_odd_even(-3); // 奇數(負數補碼 LSB 同理)
    return 0;
}

原理解析

  • a & 1 只保留最低位:結果為 0 → 偶數;為 1 → 奇數。
  • 適用於正數、負數、零(二進制補碼表示下 LSB 規律一致)。
  • 效率極高:單條 CPU 指令,無除法/取模開銷。

擴展:其他常用位運算判斷

判斷運算式原理
2 的 n 次方(n & (n-1)) == 0二進制僅一個 1
統計 1 的個數n &= (n-1) 迴圈計數每次清除最低位 1
交換兩數a ^= b; b ^= a; a ^= b;異或交換無需暫存
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved