Java Hexa Complement - PullRequest
       1

Java Hexa Complement

0 голосов
/ 04 июля 2011

Как получить дополнительное шестнадцатеричное значение для данного ввода?

Это может быть немного более общим, то есть иметь массив из X возможных значений, как преобразовать случайный массив, например, arr [x] -> arr [arr.length - arr.indexOf (x)].

Пожалуйста, игнорируйте синтаксис.

1 Ответ

1 голос
/ 04 июля 2011

Следующий фрагмент кода найдет 16 дополнений шестнадцатеричного числа:

BigInteger subtrahend = new BigInteger("2D", 16); 
// input, you can take input from user and use after validation
char[] array = new char[subtrahend.toString(16).length()];
// construct a character array of the given length
Arrays.fill(array, 'F');
// fill the array by F, look at the first source there the FF is subtracted by 2D
BigInteger minuend = new BigInteger(new String(array), 16);
// construct FFF... Biginteger of that length
BigInteger difference = minuend.subtract(subtrahend);
// calculate minus
BigInteger result = difference.add(BigInteger.ONE);
// add one to it
System.out.println(result.toString(16));
// print it in hex format

Надеюсь, это поможет вам.Спасибо.

Источник:

  1. Двоичная и шестнадцатеричная арифметика
  2. Цифровые принципы и логическое проектирование

Сначала найдите дополнение 15 данного ввода, вычтя его из числа FF ..., которое имеет ту же длину ввода.Затем добавьте 1 к нему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...