- 1
- 2
- 3
- 4
- 5
- 6
- 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.
Но вновь Вуглускр печатает в Сети:
"Меня интерисуют только мыши
их стоимость, и где преобрести"
Теперь по теме: 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абвгдежзиклмнопр.
Похоже, что автор имел в виду всё-таки двойное слово, а не слово. Повторить всю цепочку действий для двойного слова предлагаю читателю в качестве домашнего задания.
Кстати, переведи на "PHP" с учётом разрядности системы. Я сегодня ночью пытался, но я анскильный и уснул, теперь у меня не все клавешы роботают (ну, ещё меньше чем до этого).
но теперт уже нет
тяжелое наслежние 16тибитных
eax –— это двойное слово (DWORD), а rax –— четверное (QWORD).
у них там реально есть типы DWORD
в си
нахуя??
впрочем, тогда бы у нас байт и ворд были бы взаимозомомомзмоемыми
было бы не так уж и плплплпохо
>>
Чего несёт...
открой рот, закрой глаза
IBM PC 5150 имел процессор с регистром 16 бит, работавший в реальном режиме
ну почитай ты вики жеж
Ты что, информатику в школе не изучал?
Я с этим долбоебом уже спорил про какую-то сетевую хуиту, щас он упрется рогами и будет пытаться выкрутиться.
Он тупой, а я нет
https://govnokod.xyz/_25694/#comment-468721
Сучий гугель почемуто .ру еще не сканировал, wtf
После вореций «Гугл» практически перестал индексировать ГК, увы.
Продолжай обсыраца дальше
Нам это нравится
на 8086 была 16, 8 было на 8088.
а теперь позырь какой проц стоял в первом писи
Не про Commodore, не про BBC Micro, не про Amiga, не про Эппл Лиза, а про IBM PC
правда?
А так же это не первый компьютер
Но мы говорим про IBM PC
http://govnokod.ru/25796#comment499122
Еще раз: любой 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-х под словом "PC" подразумеваетя IBM PC
И я кстати думаю , что Сема это отлично знал
Он просто думал (если это слово можно применить к Семе) что в первом PC стоял 8ми битный процессор
Я делаю этот вывод из того, что он зачем-то упомянул 8080, которого в IBM PC отродясь не было
Город улыбается, улыбается.
В микрокалькуляторах, правда, 4-битное «слово» означало не число, а всего лишь одну цифру числа (там зачастую была BCD — двоично-десятичная кодировка; использовалось 10 значений из 16 возможных, остальные были зарезервированы).
ну я для кого написал про писи?
разумеется, были всякие процессоры
И четырехбитные (с них начался интел)
и восьмибитные (z80 тот же)
но IBM PC имел 16-ти битный процессор
шина данных у него была 8 бит
шина адреса такая, что влазил мегабайт (скок это? 20?)
а регистр был 16 бит
так и сидишь обоссаный
>> обоссаный
>>
Не волнуйся так!
Что вообще можно назвать процессором?
Если я из кучки транзисторов соберу девайс, который защелкивает бит, и ксорит с ним следующий, то это будет процессор?
Кстати, у него есть инструкции для «условных переходов». Для этого имеются выходы «перемотка ленты вперёд» и «перемотка ленты назад». Внешнее устройство, которое кормит процессор инструкциями, должно просматривать сигналы перемотки.
термин WORD всегда означает 2 байта
во времен 16тибных ЦПУ это был размер регистра (а чуть позже стало шириной шины)
в 32х битном режиме это уже было не так, а слово осталос
теперь регистр у нас 64 бите
шина данных вроде тоже
а слово приелось
что ты несешь?
ты серьезно думаешь, что был регистр "a"?!
И ты увидишь, что это тредик про термин WORD в x86.
Ты так же увидишь, что еблан несет какую-то ворецию про int (причем тут int?) про "переход с a на ax" (в x86?!!!) итд итп
https://govnokod.xyz/_25796/#comment-480083
:((((((((((((((((
милости прошу, к нашему шалашу(((
Строкин
Логицкий