2017-01-26 2 views
0

私はCに新しいとシリアルデバイスでの作業と私は、この行があります。Cの複合代入増分だけ右ビット

short DA, DacData;  
DA=0xFFF; 
DacData = ((channel&0x03)<<14)|((serialA&0x03)<<12)|(DA&0x6AA); 

私はDacData(DA & 0x6AA)の最後の部分だけをインクリメントするにはどうすればよいのでは私のループ?前もって感謝します!

+0

あなたがあふれ最後の部分を気にしますか? – StoryTeller

+0

わかりません。おそらくそうではありません! –

+0

これは単純な '++ DacData'です... – StoryTeller

答えて

0

はこれを試してみてください:

DacData = ((channel&0x03)<<14)|((serialA&0x03)<<12) | ((DA&0x6AA) + 1); 

は、ラップアラウンドがあることを考慮してください...

+0

ありがとう!同じことを考えていた、それが正しい方法であるかどうかわからなかった私は私の研究室に行くときにこれが動作するかどうかを確認することができます。もしそうなら、それを答えとして受け入れるでしょう!ありがとう –

+0

@ TakuzoKimura - それはオーバーフローの場合にも他の "部品"に影響します – StoryTeller

+0

@ Spider-main noobの質問に申し訳ありませんが、周りのラップアラウンドはどういう意味ですか? –

関連する問題