Преобразование шестнадцатеричного числа в дополнение к его 2 - PullRequest
1 голос
/ 19 апреля 2020

Я должен написать программу на C, которая переключает шестнадцатеричное число на дополнение к 2. например) от 0000008f до ffffff71

. До сих пор я разобрался, как распечатать 2 'c дополнение двоичного файла, но гекс кажется мне другой историей. Любые предложения о том, в каком направлении я должен смотреть?

1 Ответ

1 голос
/ 19 апреля 2020

Чтобы вычислить дополнение двух к шестнадцатеричной числовой n-ди git, либо:

  • дополняют каждую ди git (обмен 0 на F, 1 на E и т. Д.) и затем прибавьте единицу ко всей цифре, или
  • вычтите цифру из (в шестнадцатеричной) единицы, за которой следует n нулей.

Если число не является целым числом шестнадцатеричных цифр Для первого di git:

  • необходимо внести некоторые поправки в вышеприведенное: для первого метода дополнить первый di git, используя соответствующее количество битов. Например, с 22 битами в первом шестнадцатеричном формате di git используются только два бита, поэтому меняйте 0 на 3, 1 на 2, 2 на 1 и 3 на 0.
  • Для второго метода вычтите от соответствующей степени двух. Например, для 22 бит вычтите из (шестнадцатеричного) 400000.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...