Hexadecimal to Integer in Java

Что-то, что я нахожу довольно крутым, а это то, что если ваш список состоит всего из двух элементов:

ls = ['a', 'b']
dict([ls])
>>> {'a':'b'}

Помните, что dict принимает любой итерабельный, содержащий итерируемый, где каждый элемент в итерабельном должен быть истребитель с двумя объектами.

29
задан Dimitri 4 May 2011 в 16:23
поделиться

4 ответа

Почему вы не используете для этого функцию java:

Если ваши числа маленькие (меньше ваших), вы можете использовать: Integer.parseInt(hex, 16) для преобразования шестнадцатеричной строки в целое число.

  String hex = "ff"
  int value = Integer.parseInt(hex, 16);  

Для больших чисел, подобных вашей, используйте public BigInteger(String val, int radix)

  BigInteger value = new BigInteger(hex, 16);

@ См. JavaDoc:

85
ответ дан Ralph 4 May 2011 в 16:23
поделиться

вы можете использовать этот метод: https://stackoverflow.com/a/31804061/3343174 он идеально преобразует любое шестнадцатеричное число (представленное в виде строки) в десятичное число

1
ответ дан Community 4 May 2011 в 16:23
поделиться

SHA-1 создает 160-битное сообщение (20 байтов), слишком большое, чтобы его можно было сохранить в значении int или long. Как предполагает Ральф, вы можете использовать BigInteger.

Чтобы получить (менее безопасный) int хеш, вы можете вернуть хеш-код возвращенного байтового массива.

В качестве альтернативы, если вам совсем не нужен SHA, вы можете просто использовать строковый хеш-код UUID.

0
ответ дан Michael Brewer-Davis 4 May 2011 в 16:23
поделиться

Я наконец-то нашел ответы на свой вопрос на основе всех ваших комментариев. Спасибо, я попробовал это:

public Integer calculateHash(String uuid) {

    try {
        //....
        String hex = hexToString(output);
        //Integer i = Integer.valueOf(hex, 16).intValue();
        //Instead of using Integer, I used BigInteger and I returned the int value.
        BigInteger bi = new BigInteger(hex, 16);
        return bi.intValue();`
    } catch (NoSuchAlgorithmException e) {
        System.out.println("SHA1 not implemented in this system");
    }
    //....
}

Это решение не оптимально, но я могу продолжить свой проект. Еще раз спасибо за вашу помощь

0
ответ дан Ashish Aggarwal 4 May 2011 в 16:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: