[英]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.