Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Сдвиговый регистр


Автор: olenka1808las 6.6.2013, 07:34
Помогите описать работу сдвигового регистра на Си для перевода последовательного кода в 16 битный параллельный!

Автор: math64 6.6.2013, 09:11
Код

class ShiftReg {
private:
  int data;
public:
  ShiftReg() : data(0) {}
  int GetData() const { return data; }
  // Сдвигаем данные, на осбободившееся место свтавляем новый бит
  void AddBit(bool bit) { data = (data << 1) | (bit? 0 : 1); }
};

Автор: borisbn 6.6.2013, 10:53
Цитата(math64 @  6.6.2013,  09:11 Найти цитируемый пост)
(bit? 0 : 1)

 smile 
Цитата(olenka1808las @  6.6.2013,  07:34 Найти цитируемый пост)
в 16 битный

соотв. не
Цитата(math64 @  6.6.2013,  09:11 Найти цитируемый пост)
int data;

а
Код
unsigned short data;


Цитата(olenka1808las @  6.6.2013,  07:34 Найти цитируемый пост)
на Си

соотв. не 
Цитата(math64 @  6.6.2013,  09:11 Найти цитируемый пост)
class ShiftReg

а ф-ция. например, такая
Код
void addBit( unsigned short * reg, unsigned char bit ) {
    *reg = ( *reg << 1 ) | ( bit ? 1 : 0 );
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)