跳至頁尾內容
Iron Academy Logo
學習C#
學習C#

其他類別

C#位運算操作符:理解位移

Tim Corey
9m 33s

位元運算子是 C# 的重要部分,允許您操作整數的個別位元。 這些運算子在低階程式設計、性能優化和處理旗標時非常有用。 在本文中,我們將深入探討位移操作,並由Tim Corey的影片Binary in C#: Bit Shifting with Bitwise Shift Left and Bitwise Shift Right in 10 minutes or less進行導引。

位移操作入門

Tim 開始繼續他的 C# 二進位制解釋系列。 本課程是該系列中的第四課,專注於位移操作。 目標是了解向左或向右移動位元如何影響一個數字,以及我們如何在程式設計中使用這種技術。

Tim 設置了一個範例,建立了一個名為 ConvertToBinary 的方法,將整數轉換為其二進位制表示,並確保它以 8 位制格式顯示。 這使得可視化位移操作的工作原理更為容易。

理解位運算左移

Tim 介紹了位運算左移的概念,使用左移運算子 (<<)。 他解釋說,向左移動 n 個位置相當於將數字乘以 2^n

例如,他從數字 9 開始,9 的二進位制為:

00001001
00001001

當他向左移動三位 (9 << 3) 時,結果為:

01001000
01001000

這個新的二進位值代表 72。Tim 強調,左移基本上是向右新增三個零,即將數字乘以 2 三次(即 9 * 2^3 = 72)。

實際用例:設定個別位元

Tim 解釋說,雖然移動現有的數字很有用,但更常見的做法是將數字 1 移動到指定位置。 例如:

1 << 3
1 << 3

這將位元移動到第四個位置,結果為:

00001000
00001000

這個二進位數字等於 8。Tim 指出,該技術尤其在處理位元遮罩或旗標時非常有用。

理解位運算右移

接下來,Tim 透過使用右移運算子 (>>) 解釋位運算右移。 向右移動 n 個位置相當於將數字除以 2^n,並捨去任何餘數。

使用之前的範例,二進位制的 9 (00001001) 向右移動兩位 (9 >> 2) 的結果為:

00000010
00000010

這等於 2。Tim 解釋說,右移基本上是從右側移除位元,降低數字的值。

位移操作有何用處

Tim 討論為什麼位移操作在程式設計中有價值。 一些主要的用例包括:

  • 優化計算:位移可以代替兩的冪的乘法和除法,從而使操作更快。

  • 設定和清除特定位元:在基於旗標的列舉中,位移允許高效的儲存和操作布林值。

  • 處理硬體:許多低階硬體操作依賴於位元運算操作。

結論

Tim 總結道,位移操作通常與其他操作結合使用。 了解如何有效地進行位移可以導致更高效和優化的程式碼,特別是在涉及旗標、二進位計算和性能關鍵應用的情境中。

透過跟隨 Tim Corey 的解釋,我們探索了位運算左移和右移如何運作、它們如何影響數字,以及通常在何處使用。 如果您想要更直觀且深入的演示,Tim 的影片是掌握 C# 中位元運算的極佳資料來源。

Hero Worlddot related to C#位運算操作符:理解位移
Hero Affiliate related to C#位運算操作符:理解位移

分享您所愛以賺取更多報酬

您是否為使用 .NET、C#、Java、Python 或 Node.js 的開發者建立內容?將您的專業知識轉化為額外收入!

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話