32bit_me (32bit_me) wrote,
32bit_me
32bit_me

Чудесная функция

Ещё одна функция в копилку странных функций.


1
2
3
4
5
6
7
8
9


Переворачивает байт.

uint8_t mirror (uint8_t c) // чудесная функция
{
  c = ((c>>1) & 0x55) | ((c<<1) & 0xAA); 
  c = ((c>>2) & 0x33) | ((c<<2) & 0xCC); 
  c = ((c>>4) & 0x0F) | ((c<<4) & 0xF0);
  return c;
}



Способ 2:


1
2
3
4


unsigned char ReverseBits3ops64bit(unsigned char v)
{
    return (v * 0x0202020202ULL & 0x010884422010ULL) % 1023;
}


Также ссылки на эту тему:
https://medium.com/square-corner-blog/reversing-bits-in-c-48a772dc02d7
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489h/Cihjgdid.html
Tags: программирование
Subscribe

  • С наступающим!

    Поздравляю френдов с наступающим новым годом! В этом году я сделал ряд важных для себя вещей, но не всех, увы, на все времени не хватает. Несмотря…

  • Подарки на день программиста

    Вот что подарили на работе: И ещё некий гаджет.

  • Квесты

    А вы заметили, что квест-румы исчезли? Возможно, не совсем, но их точно не так много, как было раньше. Я никогда не понимал такого тупого занятия,…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 48 comments

  • С наступающим!

    Поздравляю френдов с наступающим новым годом! В этом году я сделал ряд важных для себя вещей, но не всех, увы, на все времени не хватает. Несмотря…

  • Подарки на день программиста

    Вот что подарили на работе: И ещё некий гаджет.

  • Квесты

    А вы заметили, что квест-румы исчезли? Возможно, не совсем, но их точно не так много, как было раньше. Я никогда не понимал такого тупого занятия,…