2017-01-10 73 views
-1

我對C++編程非常陌生。我需要填寫標題字段,其中之一是具有4個子字段的位圖字段。我不知道爲那個領域創造價值。有人可以幫我嗎?C++如何創建位圖字段

文字下面詳細解釋:

屬性是一個具有四個子字段位圖場。最重要的位應該用於指示是否應該接收消息。當該位爲「1」時,應發送確認:如果「0」,則不應發送確認。接下來的七位(位14:8)應指出IDD的版本號。

No ACK = 0, ACK =1 
15 - Most Significant bit 

Version 
Range 0......127 
Draft STANAG 4586 Edition 3 for Ratification = 30 Future Drafts/Editions...31 -127 
14 13 12 11 10 9 8 - bits position 

Checksum Length 
No Checksum =0 
2 bytes = 01 4 bytes = 10 
7 6 - - bits position 

Reserved for Future Use 
- - bits position 

由於

+0

查看位運算符for和,或or('&','|'),並移動了'<<', '>>'。通過這些組合,您可以創建和分析所需的位圖字段。 –

+0

[你如何在C/C++中設置,清除和切換單個位?](http://stackoverflow.com/questions/47981/how-do-you-set-clear-and-toggle-a -single-bit-in-cc) –

+0

如果我像這樣定義我的7位字段結構位{unsigned int a:1; unsigned int b:1; unsigned int c:1; unsigned int d:1; unsigned int e:1; unsigned int f:1; unsigned int g:1; };我將如何爲此位集分配值30? – User

回答

1

你在找什麼叫 「位場」,在C和C++。有關說明和示例,請參閱MSDNcppreference

struct YourBitField 
{ 
    AckOrNack : 1; 
    IDD : 7; 
    // more here 
}