Преобразуйте идентификатор контакта Google в шестнадцатеричный код для использования в URL - PullRequest
0 голосов
/ 30 января 2019

Google Контакты сейчас (январь 2019 г.) выдают длинный (19-значный) идентификатор десятичного числа для каждого создаваемого вами контакта.

К сожалению, как обсуждалось в этом вопросе идентификатор не может бытьвведите URL-адрес, чтобы легко просмотреть контакт, однако, если вы преобразуете это десятичное число в шестнадцатеричное, его можно вставить в URL-адрес.

Так что вопрос в том, как преобразовать c2913347583522826972 в 286E4A310F1EEADC

Когда я использую конвертер десятичных чисел в шестнадцатеричные здесь , я получаю 286E4A310F1EEADC, если я опускаю c (2-я функция ниже - это версия кода сайтов, но, возможно, она также использует PHP)

Тем не менее, пробуя следующие функции в Javascript, я получаю смешанные результаты

Первая из них - это вопрос стека , который является ближайшим, всего 2 цифры от

function decimalToHexString(number)
{
number = parseFloat(number);
  if (number < 0)
  {
    number = 0xFFFFFFFF + number + 1;
  }

  return number.toString(16);
}

console.log(decimalToHexString('2913347583522826972'));
//output 286e4a310f1eea00

function convertDec(inp,outp) {
    var pd = '';
    
    var output ;
    var input = inp;
    
    for (i=0; i < input.length; i++) {
        var e=input[i].charCodeAt(0);var s = "";
    output+= e + pd;
}
return output;
}
//return 50574951515255535651535050565054575550

Мне нравится знать ваши мысли по улучшению этого процесса

1 Ответ

0 голосов
/ 30 января 2019

Кажется, что предел размера цифры.Вы должны использовать массивы, если вам нужно преобразовать большие цифры.

Вы можете использовать пакет hex2dec npm для преобразования между шестнадцатеричным и десятичным.

>> converter.decToHex("2913347583522826972", { prefix: false }
//286e4a310f1eeadc

Пример J

На стороне Python вы можете просто сделать:

dec = 2913347583522826972
// Python implicitly handles prefix
hexa =  hex(dec)
print dec == int(hexa, 16)
// True

Пример Python

Для получения дополнительной информации взгляните на следующеесуть https://gist.github.com/agirorn/0e740d012b620968225de58859ccef5c

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