跳過到頁腳內容
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介紹了位元左移的概念,並使用左移運算子(<<)。 他解釋道,向左移2^n

例如,他從數字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使用右移運算子(>>)解釋位元右移。 向右移2^n,並丟棄任何餘數。

使用前面的例子,二進位數字9 (9 >> 2)結果為:

00000010
00000010

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

為什麼位元移位有用

Tim討論了為什麼位元移位在程式設計中很有價值。 一些主要用途包括:

  • 優化計算:位元移位可以替代2的次方的乘法和除法,使操作更快。

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

  • 與硬體配合工作:許多低階硬體操作依賴於位元運算。

結論

Tim總結道,位元移位通常與其他操作結合使用。 有效地移動位元可以使代碼更高效和優化,尤其是在涉及旗標、二進位計算和性能關鍵的應用中。

通過遵循Tim Corey的解釋,我們探索了位元左移和右移的工作原理,它們如何影響數字,以及它們常見的使用場所。 如果您想要一個視覺化和深入的演練,Tim的影片是精通C#位元運算的絕佳資源。

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

通過分享您所愛的東西賺得更多

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

鋼鐵支援團隊

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