Excel BITRSHIFT 函數:將數值進行位元右移 (Bitwise Shift Right) 運算完整指南
Excel BITRSHIFT 函數:將數值進行位元右移 (Bitwise Shift Right) 運算完整指南
📅 發布日期:2026-09-07
🏷️ 分類:數值與數學 Excel 工作表函數
💡 函數速查卡
| 函數名稱 | BITRSHIFT |
|---|---|
| 所屬類別 | 工程函數 (Engineering) / 數學與三角函數 |
| 傳回類型 | 非負整數 (Non-negative Integer) |
| 常用頻率 | ★★☆☆☆ |
在 Excel 進行位元運算與底層資料解析時,BITRSHIFT 函數用於將指定的十進位數值轉換為二進位後,**向右移動指定的位元數(Bitwise Shift Right)**。在數學邏輯上,每向右移動 1 位,相當於將數值除以 2 並無條件捨去小數(整數除法)。此函數常用於硬體暫存器資料解析、快速進行 2 的次方除法運算以及擷取高位元資料。
一、 基本語法與參數
BITRSHIFT 函數的標準語法結構如下:
=BITRSHIFT(number, shift_amount)
| 參數 | 說明 | 預設值 / 必填 |
|---|---|---|
number |
要進行右移運算的十進位非負整數,必須大於或等於 0,且小於 2^48 (281,474,976,710,656)。 | 必填 |
shift_amount |
要向右移動的位元數。若為正數表示向右移動;若為負數則會轉為向左移動(效果等同於 BITLSHIFT)。絕對值必須小於等於 53。 |
必填 |
二、 核心功能說明
BITRSHIFT 運算會將數值轉為二進位後向右推進,最右邊溢出的位元會被捨棄,左邊補 0:
例如:計算 BITRSHIFT(13, 2)
- 數值 13 的二進位表示為:
1101 - 將二進位向右移動 2 個位元,最右側的
01被捨棄,得到:11(二進位) - 將
11轉回十進位即得到 **3**(等同於INT(13 / 2^2) = INT(3.25) = 3)。
三、 實用公式範例
範例 1:基本數值右移運算
將特定數值進行不同位元數的右移:
' 16 (10000) 右移 2 位 -> 4 (100)
=BITRSHIFT(16, 2)
' 27 (11011) 右移 3 位 -> 3 (011)
=BITRSHIFT(27, 3)
範例 2:高位元資料擷取(搭配 BITAND)
在處理 16 位元暫存器數據時,若前 8 位元(High Byte)代表設備狀態代碼,可先右移 8 位元將其推至低位,再進行擷取:
' A2 為 16 位元數據,先右移 8 位將高位元移至低位,再用 BITAND 遮罩濾出前 8 位元
=BITAND(BITRSHIFT(A2, 8), 255)
範例 3:傳入負數 shift_amount 實現左移
當 shift_amount 輸入負數時,作用相當於左移運算:
' 右移 -2 位等同於左移 2 位:4 (100) -> 16 (10000)
=BITRSHIFT(4, -2)
四、 常見陷阱與注意事項
⚠️ 注意事項 1:輸入負數或超出範圍傳回 #NUM! 錯誤
number 參數必須介於 0 到 (2^48 - 1) 之間;且 shift_amount 的絕對值不能超過 53。若超出此範圍將傳回 #NUM! 錯誤。
⚠️ 注意事項 2:非整數參數會被自動截斷
若輸入的
若輸入的
number 或 shift_amount 包含小數,Excel 會自動無條件截斷(Truncate)小數部分僅取整數進行運算。
五、 相關函數推薦
BITLSHIFT:對數值進行位元左移(Bitwise Shift Left)運算。BITAND:執行兩數值的位元 AND (邏輯與) 運算。BITOR:執行兩數值的位元 OR (邏輯或) 運算。
六、 官方文件連結
想進一步瞭解微軟官方說明與更多邊界情境,可參考:
留言
張貼留言