Javascript 将Google联系人ID转换为十六进制以在URL中使用

Javascript 将Google联系人ID转换为十六进制以在URL中使用,javascript,python,hex,decimal,Javascript,Python,Hex,Decimal,Google Contacts now(2019年1月)为您创建的每个联系人发布一个长(19位)十进制数字id 不幸的是,正如本文所讨论的那样,无法将ID放入URL以轻松查看联系人,但是如果将此十进制数转换为十六进制数,则可以将其放入URL 所以问题是,如何转换 c2913347583522826972 到 286E4A310F1EEADC 当我使用十进制到十六进制的转换器时 286E4A310F1EEADC如果我删除c(下面的第二个函数是站点代码的一个版本,但它也可能使用PHP) 但是,在Ja

Google Contacts now(2019年1月)为您创建的每个联系人发布一个长(19位)十进制数字id

不幸的是,正如本文所讨论的那样,无法将ID放入URL以轻松查看联系人,但是如果将此十进制数转换为十六进制数,则可以将其放入URL

所以问题是,如何转换 c2913347583522826972 到 286E4A310F1EEADC

当我使用十进制到十六进制的转换器时 286E4A310F1EEADC如果我删除c(下面的第二个函数是站点代码的一个版本,但它也可能使用PHP)

但是,在Javascript中尝试以下函数会得到混合的结果

第一个是最接近的,只差两位数

函数decimalToHexString(数字)
{
number=parseFloat(number);
如果(数字<0)
{
数字=0xFFFFFF+数字+1;
}
返回编号。toString(16);
}
log(decimalToHexString('29133475835222826972');
//输出286e4a310f1eea00
函数转换器DEC(输入、输出){
var pd=“”;
var输出;
var输入=inp;
对于(i=0;i//返回505749515255535651535050550554575550
似乎是数字大小的限制。如果需要转换较大的数字,则必须使用数组

您可以使用npm包在十六进制和十二进制之间进行转换

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

在python方面,您可以简单地执行以下操作

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

有关更多信息,请查看以下要点