LeetCode 面試必考:(n & 1) 位元運算判斷奇偶的原理詳解

更新 發佈閱讀 3 分鐘

背景 : 這個問題通常出現在哪裡?

在寫 Leetcode, 面試題或是底層程式時, 常會看見以下程式碼

if ((n & 1) == 1) {

}

1 不是十進位的 1 嗎?其實關鍵在於電腦是用二進位在運算

重要觀念 : 二進位的『最右邊』

在二進位中:

最右邊那位 (LSB) : 代表這個數字是奇數或偶數, 右邊是 1 -> 奇數, 最右邊是 0 -> 偶數

範例 : 5 的二進為為 101, 6 的二進位為 110, 7 的二進位為 111

& (AND) 運算子在做什麼?

AND 的規則只有一條 : 兩邊都是 1, 結果才是 1

實際上的 (n & 1) 發生什麼事情

11 = 1011

1 = 0001

___________

& = 0001 -> 結果是 1

(n & 1) 到底在判斷什麼?

(n & 1) 只是在檢查 n 的『最右邊那一個 bit 是不是 1』

Java 範例

public class BitCheck {
public static void main(String[] args) {
int n = 11;
if ((n & 1) == 1) {
System.out.println("奇數");
} else {
System.out.println("偶數");
}
}
}

延伸之後計算 bit 通常會這樣寫

while(n != 0) {
count += (n & 1);
n >>= 1;
}

n & 1 : 檢查目前最低位, n >>= 1 : 右移一位, 繼續檢查下一個 bit

總結

(n & 1) 是一個非常精準的位元檢查技巧。它利用了二進位與 AND 運算的特性,只關心數字的最低位, 因此能快速判斷奇偶或是否為 set bit。



留言
avatar-img
Krist
1會員
7內容數
您好, 目前是軟體工程師 Krist
Krist 的其他內容
2026/01/30
本文將詳細解釋 Stack (堆疊) 和 Queue (佇列) 這兩種重要的資料結構,深入探討它們的「先進後出」(LIFO) 與「先進先出」(FIFO) 原則,並透過疊盤子和排隊買票的生動比喻,輔以 Java 實作操作,幫助讀者輕鬆掌握其核心概念、操作方法,以及如何在實際應用中選擇合適的結構。
Thumbnail
2026/01/30
本文將詳細解釋 Stack (堆疊) 和 Queue (佇列) 這兩種重要的資料結構,深入探討它們的「先進後出」(LIFO) 與「先進先出」(FIFO) 原則,並透過疊盤子和排隊買票的生動比喻,輔以 Java 實作操作,幫助讀者輕鬆掌握其核心概念、操作方法,以及如何在實際應用中選擇合適的結構。
Thumbnail
2026/01/29
本文將深入淺出地介紹 Set 資料結構的核心概念,強調其「不重複」與「順序不重要」的特性。展示 Set 的基本用法,並探討適用於 Set 的情境,例如去除重複資料、快速查找元素以及在學生、帳號、商品編號等場景的應用。此外,文章還將說明如何取得 Set 中的元素,最後總結 Set 的關鍵特點。
2026/01/29
本文將深入淺出地介紹 Set 資料結構的核心概念,強調其「不重複」與「順序不重要」的特性。展示 Set 的基本用法,並探討適用於 Set 的情境,例如去除重複資料、快速查找元素以及在學生、帳號、商品編號等場景的應用。此外,文章還將說明如何取得 Set 中的元素,最後總結 Set 的關鍵特點。
2025/11/27
本文旨在釐清初學者常混淆的陣列 (Array) 與串列 (List) 的差異。透過生動的比喻,闡述兩者的核心特性,如固定大小、資料型態統一性、存取速度等,並針對 Java 提供了 ArrayList 與 LinkedList 的應用情境分析,幫助開發者在不同場景下做出最佳選擇。
Thumbnail
2025/11/27
本文旨在釐清初學者常混淆的陣列 (Array) 與串列 (List) 的差異。透過生動的比喻,闡述兩者的核心特性,如固定大小、資料型態統一性、存取速度等,並針對 Java 提供了 ArrayList 與 LinkedList 的應用情境分析,幫助開發者在不同場景下做出最佳選擇。
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
00631L 冷熱指標程式更新
Thumbnail
00631L 冷熱指標程式更新
Thumbnail
public class MultiplicationTable { public static void main(String[] args) { int size = 9; // 設定九九乘法表的大小 // 雙層迴圈用於生成九九乘法表 f
Thumbnail
public class MultiplicationTable { public static void main(String[] args) { int size = 9; // 設定九九乘法表的大小 // 雙層迴圈用於生成九九乘法表 f
Thumbnail
我今天學到了一個應用程式,只要把自己想打得字打進去打進去,在設定自己喜歡的圖片,他就換幫你轉換成一種密密麻麻很酷的風格。這堂課讓我學到很多東西,也明白現在的科技做的事越來越多了~希望自己以後能更努力的學習
Thumbnail
我今天學到了一個應用程式,只要把自己想打得字打進去打進去,在設定自己喜歡的圖片,他就換幫你轉換成一種密密麻麻很酷的風格。這堂課讓我學到很多東西,也明白現在的科技做的事越來越多了~希望自己以後能更努力的學習
Thumbnail
無論年紀多大多小,只要「願意」付出行動 時間、地點都不是問題 現在都有兒童程式課程 小朋友學的是利用積木組合而成的程式 大朋友就可以直接拿鍵盤來劈哩啪啦開始寫程式碼囉~
Thumbnail
無論年紀多大多小,只要「願意」付出行動 時間、地點都不是問題 現在都有兒童程式課程 小朋友學的是利用積木組合而成的程式 大朋友就可以直接拿鍵盤來劈哩啪啦開始寫程式碼囉~
Thumbnail
為什麼要學習程式呢? 程式是怎麼分類的? 能處理什麼事情?
Thumbnail
為什麼要學習程式呢? 程式是怎麼分類的? 能處理什麼事情?
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News