[ create a new paste ] login | about

Link: http://codepad.org/QLKvKFQR    [ raw code | output | fork | 1 comment ]

C, pasted on Nov 22:
unsigned char sdvig_bita_vlevo (unsigned char arg, int n)
{
int bitsize;
unsigned char hi;
bitsize = 6; // битовый размер типа
hi =  (arg >> (bitsize - n)) & ((1 << n) - 1); // Вырезаем старшие n бит
return ((arg << n) | hi) & ((1 << bitsize) - 1); //or'ом записываем туда вырезанную старшую часть
}

int main (void)
{
  unsigned char bitm;
  int i;
  bitm=1;
  for (i=0; i<10; i++)
    {
      bitm = sdvig_bita_vlevo (bitm, 1);
      printf ("%x\n", bitm);
    }

  return 0;
}


Output:
1
2
3
4
5
6
7
8
9
10
2
4
8
10
20
1
2
4
8
10


Create a new paste based on this one


Comments:
posted by helio999 on Dec 22
cool))
reply