簡體   English   中英

如何管理聯合和位域

[英]How to manage unions and bit-fields

我一直在嘗試創建一個程序,將兩個正定點數相加,其整個部分為 5 位,小數部分為 3 位,但我沒有成功,我知道可以通過處理位域和聯合來實現,但是我還沒有找到目標。 如果有人可以幫助我,我將不勝感激。

a是一個整數對象,使用具有三個小數位的定點表示來表示數字a 那么a = 8• a ,或者反過來, a = a /8。

類似地,設b是一個整數對象,表示具有相同表示的數字b

然后,由於a = a /8 和b = b /8,我們有a + b = a /8 + b /8 = a+b /8。

因此,數目的總和的表示所表示由a和由表示的數目b可以與計算a+b

C編程中的位域可以使用struct定義,如下所示,用於您要執行的任務。

struct decimalPoint
{
    unsigned int wholePart:5;
    unsigned int decimalPart:3;
};

現在,由於定義數據的方式已准備就緒,您可以執行此數據的添加並將結果存儲回相同的結構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM