Як користуватися калькулятором програмування в OS X?


6

Я намагаюся зробити найкраще з калькулятора програмування в OS X, але я не знаю цих функцій:

  • байт фліп
  • слово фліп
  • X <
  • X >> Y
  • RoL / RoR (це просто sll / srl?)

Чи можливо виконати доповнення двох у більш вузькому діапазоні, тобто 16 біт замість 64 біт?


2
Ви можете навести курсор на клавіші калькулятора, щоб переглянути короткий опис того, що вони роблять. Також перегляньте двійкові значення, щоб побачити трохи краще, що відбувається насправді.
Асмус

Для того, щоб обмежити діапазон компліментів 2 або 1, просто І це з FFFF на 16 біт, FF для 8 і т. Д. ПЕРЕКОНАЙТЕ, що ви зберігаєте його в шістнадцятковому форматі, виконуючи ці операції, хоча в іншому випадку це зіпсує його.
MarcusJ

Існує також альтернатива калькулятору акцій: bitcalc.abeghyan.com
Пабло

Відповіді:


6

Перегортання

Перегортання байтів і перевертання слів замінять байти або слова. Технічно це працює так:

Скажімо, у нас є двобайтове значення (шістнадцяткове): 0x3344

Число складається з двох байтів, нижній - 0x44, а вищий - 0x33, тому давайте розмістимо їх у дві уявні комірки одного розміру байтів:

[33][44]

Тепер переверніть комірки:

[44][33]

Тому перевернуте байт значення буде 0x4433

Точно так само і зі словами, розглядаючи слово, складається з двох байтів. Припустимо, що у нас є двословне значення: 0x12345678

Розділіть їх на дві уявні комірки, тепер містять одне слово (по 2 байти):

[1234][5678]

Тепер переверніть комірки:

[5678][1234]

Тому значення перевернутого слова буде 0x56781234

Зсув

Зсув зміщує значення побіжно. Що це означає?

Візьмемо дуже просте десяткове число: 5 Далі перетворимо його у його двійкове подання: 101 Потім перенесемо його на 1:

[101] << [1010]

Ми в основному перемістили всю двійкову послідовність, залишивши одну позицію і заповнивши порожній простір нулем.

Тепер зробіть те ж саме, але зі зміщенням вправо:

[101] >> [010]

наше число зараз 10. Нижній 1 втрачається зміщенням праворуч. Нуль зліва - лише для відображення і не має значення. // Технічно є прапор CPU, який вказує на те, що біт був загублений, але він не стосується калькулятора.

Обертовий

Обертання працює абсолютно так само, як і переміщення за одним винятком: біти ніколи не втрачаються. Отже, ми беремо те саме десяткове значення 5 і його двійкове подання 101. Потім обертаємо його прямо в байті:

[00000101] ROR [10000010]

Як бачимо, [1], який було втрачено праворуч, що рухається, переносився на початку нашого байта.

Те саме, що зсуваємо ліворуч, виконаймо ряд обертів на 1 біт ліворуч, поки ми не виконаємо один біт:

[00000101] ROL [00001010]
[00001010] ROL [00010100]
[00010100] ROL [00101000]
[00101000] ROL [01010000]
[01010000] ROL [10100000]
[10100000] ROL [01000001]

Це не відповідає на питання wrt про те, як це досягти за допомогою самої програми Калькулятор. Також він не стосується компліментного питання 2-го. На питання все ще напрошується відповідь, наприклад "натисніть кнопку x потім кнопку" y "тощо." Або питання не сформульовано правильно, або ця, прийнята на даний момент відповідь, не стосується питання безпосередньо.
Рондо

Перегортання слова - це ще один спосіб сказати ендіанські заміни btw.
MarcusJ

@MarcusJ або навпаки. Перегортання - це широкий, загальний термін, ендіанські заміни звужуються до конкретного застосування.
Рілаккума

1
  • byte flip/ word flip- не впевнений у цьому
  • X<<Y/ X>>Y- біт зміщення X ліворуч / праворуч Y разів
  • RoL/ RoR- Обертати вліво / вправо, подібно до бітфіфінгу, за винятком того, як біти обертаються круговим способом
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.