Няшная / Говнокод #25796 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
n = ((n >>  1) & 0x55555555) | ((n <<  1) & 0xaaaaaaaa);
   n = ((n >>  2) & 0x33333333) | ((n <<  2) & 0xcccccccc);
   n = ((n >>  4) & 0x0f0f0f0f) | ((n <<  4) & 0xf0f0f0f0);
   n = ((n >>  8) & 0x00ff00ff) | ((n <<  8) & 0xff00ff00);
   n = ((n >> 16) & 0x0000ffff) | ((n << 16) & 0xffff0000);

                -- C code which reverses the bits in a word.

Запостил: neTyx_npoTKHyTbIu neTyx_npoTKHyTbIu, (Updated )

Комментарии (77) RSS

  • Да, времена и нравы стали тише... -
    Но вновь Вуглускр печатает в Сети:
    "Меня интерисуют только мыши
    их стоимость, и где преобрести"
    Ответить
  • Кстати, Числов умер недавно.

    Теперь по теме: 0x5 = 0b0101; 0xa = 0b1010; 0x3 = 0b0011; 0xc = 0b1100. Пронумеруем биты 16-битного числа: рпонмлкизжедгвба.
    (n >> 1) & 0x55555555 == 0b0р0о0м0к0з0е0г0б.
    (n << 1) & 0xaaaaaaaa == 0bп0н0л0и0ж0д0в0а0.
    После первого шага n = 0bпрнолмикжздевгаб.
    Заметим, что пары смежных битов поместались менями.

    Второй шаг:
    (n >> 2) & 0x33333333 == 0b00пр00лм00жз00вг.
    (n << 2) & 0xcccccccc == 0bно00ик00де00аб00.
    После второго шага n = 0bноприклмдежзабвг.
    Заметим, что у нас возникли упорядоченные цепочки длиной 4 бита.

    Третий шаг:
    (n >> 4) & 0x0f0f0f0f == 0b0000нопр0000дежз.
    (n << 4) & 0xf0f0f0f0 == 0bиклм0000абвг0000.
    После третьего шага n = 0bиклмнопрабвгдежз.
    Осталось поместать менями две половинки.

    Четвёртый шаг:
    (n >> 8) & 0x00ff00ff = 0b00000000иклмнопр.
    (n << 8) & 0xff00ff00 = 0bабвгдежз00000000.
    После четвёртого шага n = 0bабвгдежзиклмнопр.

    Похоже, что автор имел в виду всё-таки двойное слово, а не слово. Повторить всю цепочку действий для двойного слова предлагаю читателю в качестве домашнего задания.
    Ответить
    • Вообще-то "слово" не является машинным словом только в говномире "x86" и "windows".

      Кстати, переведи на "PHP" с учётом разрядности системы. Я сегодня ночью пытался, но я анскильный и уснул, теперь у меня не все клавешы роботают (ну, ещё меньше чем до этого).
      Ответить
      • когда-то являлась

        но теперт уже нет
        тяжелое наслежние 16тибитных
        Ответить
      • Порядок был просран, когда переходили с eax на rax.
        Ответить
        • Ещё раньше: когда переходили с ax на eax.
          eax –— это двойное слово (DWORD), а rax –— четверное (QWORD).
          Ответить
          • Самое лулзовое, что эти соспатры зачем-то отлили в копролите эти знания в Win32Api

            у них там реально есть типы DWORD
            в си
            нахуя??
            Ответить
          • Хорошо что до обратной программной совместимости не додумались во время перехода с 8-ми на 16 бит...
            Ответить
            • по шастью, писи начались с 16 бит (8 битная там была только шына данных)

              впрочем, тогда бы у нас байт и ворд были бы взаимозомомомзмоемыми
              было бы не так уж и плплплпохо
              Ответить
              • >> писи начались с 16 бит
                >>
                Чего несёт...
                Ответить
                • несу тебе говна на лопате
                  открой рот, закрой глаза

                  IBM PC 5150 имел процессор с регистром 16 бит, работавший в реальном режиме
                  Ответить
                    • Тот гость имеет ввиду именно "IBM PC", а не просто персональный компьютер. 8080 из "PC" стоял только на Альтаире.
                      Ответить
                      • Да это долбоёб какой-то, у которого до "DOS" и "8086" были только абаки и палки-считалки.
                        Ответить
                        • Ты конечно очень мощно обосрался, показав нам всем, что ты не знаешь, что такое "IBM PC".

                          Ты что, информатику в школе не изучал?
                          Ответить
                          • Поссал тебе в рыло.

                            Я с этим долбоебом уже спорил про какую-то сетевую хуиту, щас он упрется рогами и будет пытаться выкрутиться.
                            Ответить
                            • Продолжай нести хуйню, дурачок
                              Продолжай обсыраца дальше
                              Нам это нравится
                              Ответить
                • да

                  а теперь позырь какой проц стоял в первом писи
                  Ответить
                  • Первое использование термина «персональный компьютер» относилось к компьютеру Programma 101 (англ.)русск. (1964) итальянской фирмы Olivetti
                    Ответить
                    • Однако, когда я говорю PC, все почему-то понимают, что я говорю про IBM PC compatible.

                      Не про Commodore, не про BBC Micro, не про Amiga, не про Эппл Лиза, а про IBM PC
                      Ответить
                        • То-есть когда я говорю "первая пекашка 5150 была на 16 битном проце" то тебе НЕ очевидно, о чем я говорю?

                          правда?
                          Ответить
                            • Разумеется
                              А так же это не первый компьютер

                              Но мы говорим про IBM PC
                              Ответить
                                • Фирма IBM включила аббревиатуру «персональный компьютер» (англ. PC) в название своего изделия и, с распространением ЭВМ, имеющих архитектуру IBM PC в начале 1980-х годов, персональным компьютером стали называть любую ЭВМ, имеющую архитектуру IBM PC. (с) вики
                                  Ответить
                                  • > стали называть любую ЭВМ, имеющую архитектуру IBM PC

                                    Еще раз: любой IBM PC является персональным компьютером, но не все персональные компютеры имеют архитектуру IBM PC. IBM PC является подмножеством множества персональных компьютеров.

                                    Заебал.
                                    Ответить
                                    • Еще раз:

                                      "персональным компьютером стали называть любую ЭВМ, имеющую архитектуру IBM PC"

                                      Понимаешь ли ты смысл этой фразы?

                                      Она означает, что когда-то (давно-давно) действительно словом "персональный компутер" называли любой домашний комп

                                      Но с 80-х годов словом "персональный комптуре" называют только совместимые с IBM PC

                                      Так вот случилось ввиду его популярности

                                      От себя добавлю, что до 2006 года можно было услышать: "у тебя мак или писи?" и даже после перехода яблока на x86 все равно можно услышать "у меня не мак а pc"

                                      https://www.crucial.com/usa/en/mac-vs-pc-the-pros-and-cons


                                      Потому когда люди говорят "писи" они с вероятностью 99% имеют ввиду IBM PC компатибл

                                      Машину, с процессором x86
                                      Ответить
                                      • Еще раз
                                        >> эта подветка началась с моего шутливого комента про переход с 8-ми на 16 бит.
                                        При чем тут 80-е?
                                        Ответить
                                        • С того, что мы живем после 80-х

                                          Понимаешь?

                                          80-е уже прошли
                                          И вот после 80-х под словом "PC" подразумеваетя IBM PC

                                          И я кстати думаю , что Сема это отлично знал

                                          Он просто думал (если это слово можно применить к Семе) что в первом PC стоял 8ми битный процессор

                                          Я делаю этот вывод из того, что он зачем-то упомянул 8080, которого в IBM PC отродясь не было
                                          Ответить
                                          • Этот ванька всё еще усирается?
                                            Ответить
                                            • Ванька усирается в рот тупому пидарасу сёме
                                              Ответить
            • Были и четырёхбитные процессоры. Они в основном использовались в микрокалькуляторах и в бытовой технике.

              В микрокалькуляторах, правда, 4-битное «слово» означало не число, а всего лишь одну цифру числа (там зачастую была BCD — двоично-десятичная кодировка; использовалось 10 значений из 16 возможных, остальные были зарезервированы).
              Ответить
              • Икарус
                ну я для кого написал про писи?

                разумеется, были всякие процессоры
                И четырехбитные (с них начался интел)
                и восьмибитные (z80 тот же)

                но IBM PC имел 16-ти битный процессор
                шина данных у него была 8 бит
                шина адреса такая, что влазил мегабайт (скок это? 20?)
                а регистр был 16 бит
                Ответить
                  • ты просто обосралcя и стестняешься поменять штанишки

                    так и сидишь обоссаный
                    Ответить
                • Может адресовать 2 бита в памяти и выполнить с ними 2 действия?
                  Ответить
                  • У него шина инструкций 4-битная, а данные подаются на одну ножку. Он может выполнить 16 действий с одним битом, поданным на вход, и с результатом предыдущего действия. Память адресовать он не может.
                    Ответить
                    • т-есть у него стат память на 1 бит?
                      Ответить
                        • Тоже мне процессор

                          Что вообще можно назвать процессором?

                          Если я из кучки транзисторов соберу девайс, который защелкивает бит, и ксорит с ним следующий, то это будет процессор?
                          Ответить
                          • Вот и мне показалось, что то, что производитель назвал «однобитным процессором», в реальности нифига не процессор.

                            Кстати, у него есть инструкции для «условных переходов». Для этого имеются выходы «перемотка ленты вперёд» и «перемотка ленты назад». Внешнее устройство, которое кормит процессор инструкциями, должно просматривать сигналы перемотки.
                            Ответить
                            • Процессоры 1-го поколения компьютеров вообще не имели хранимой программы и программировались соединением соответствующих блоков в нужном порядке.
                              Ответить
                • Однобитный вообще оказался несамостоятельным. Он даже не может вытягивать инструкции из памяти, его нужно кормить командами с руки.
                  Ответить
          • Нет, тогда int нормально расширили до мышинного слова.
            Ответить
            • какой инт? в чем? причем тут воше инт?

              термин WORD всегда означает 2 байта

              во времен 16тибных ЦПУ это был размер регистра (а чуть позже стало шириной шины)
              в 32х битном режиме это уже было не так, а слово осталос


              теперь регистр у нас 64 бите
              шина данных вроде тоже

              а слово приелось
              Ответить
              • Когда с a перешли на ax, то пришлось придумывать как называть новый тип, долбоёб.
                Ответить
    • >Числов умер
      :((((((((((((((((

      милости прошу, к нашему шалашу(((
      Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8