Google通讯录现在(2019年1月)为您创建的每个联系人发出一个长(19位)十进制数字ID。
不幸的是,如本question中所述,无法将ID放入URL中以轻松查看联系人,但是,如果将此十进制数字转换为十六进制,则可以将其放入URL中。
所以问题是,如何转换 c2913347583522826972 至 286E4A310F1EEADC
当我使用十进制到十六进制转换器here时,它给了我 286E4A310F1EEADC如果我删除c(下面的第二个功能是站点代码的版本,但它也可能使用PHP)
但是尝试使用Javascript的以下功能会给我带来不同的结果
第一个是最接近这个stack question的位置,距离只有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
很高兴知道您对改善此过程的想法
答案 0 :(得分:1)
似乎是数字大小的限制。如果需要转换较大的数字,则必须使用数组。
您可以使用hex2dec npm软件包在十六进制和十进制之间进行转换。
>> converter.decToHex("2913347583522826972", { prefix: false }
//286e4a310f1eeadc
在python方面,您只需完成
dec = 2913347583522826972
// Python implicitly handles prefix
hexa = hex(dec)
print dec == int(hexa, 16)
// True
更多信息请看以下要点 https://gist.github.com/agirorn/0e740d012b620968225de58859ccef5c