2017-01-26 14 views
0

Я новичок в 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, но что вы подразумеваете под обертыванием? –