Як користуватися калькулятором програмування в 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.