首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C# 位元操作:從整數十位數提取高四位與低四位

     編輯:程式設計綜合問答

問題背景

在 C# 開發中,有時需要將一個整數的十位數拆解為兩個獨立的位元組:高四位與低四位。這在處理特定通訊協定、硬體介面或資料壓縮時相當常見。

核心邏輯

假設有一個整數 x = 123,其十位數為 2。將該數值視為一個 byte(即 0x02),高四位為 0,低四位為 2。透過位移與遮罩運算即可快速分離。

程式碼範例

int x = 123;
// 取得十位數
int tensDigit = (x / 10) % 10;

// 高四位:右移 4 位(相當於除以 16)
byte highNibble = (byte)(tensDigit / 16);

// 低四位:取餘數 16(相當於 & 0x0F)
byte lowNibble = (byte)(tensDigit % 16);

說明

  • tensDigit 的範圍為 0~9,因此高四位永遠為 0,低四位即為該數字本身。
  • 若來源數值超過 15(即 0x0F),高四位才會出現非零值。
  • 此技巧可擴充至任意 8 位元數值的高/低半位元組拆解。

應用場景

常見於 Modbus 協定資料封裝、感測器資料解析、檔案格式轉換等需將單一位元組拆為兩組 4-bit 欄位的場合。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved