Max*_*Max 5 javascript postgresql node.js
我有一个64位无符号整数,我需要在PostgreSQL中表示.我把它分解为两个32位无符号整数,high并且low.为了让Postgres的接受它,我需要转换high,并low以代表符号的64位整数的字符串.
如何将两个32位无符号整数转换为以十进制表示的有符号64位整数的字符串?
我已经在 Javascript 中以快速'n'肮脏但工作'n'快速的方式完成了这一点:Int64HighLowToFromString,使用 53 位尾数双精度算术和 32 位位运算,专门用于十进制输入/输出。
function Int64HiLoToString(hi,lo){
hi>>>=0;lo>>>=0;
var sign="";
if(hi&0x80000000){
sign="-";
lo=(0x100000000-lo)>>>0;
hi=0xffffffff-hi+ +(lo===0);
}
var dhi=~~(hi/0x5af4),dhirem=hi%0x5af4;
var dlo=dhirem*0x100000000+dhi*0xef85c000+lo;
dhi += ~~(dlo/0x5af3107a4000);
dlo%=0x5af3107a4000;
var slo=""+dlo;
if(dhi){
slo="000000000000000000".slice(0,14-slo.length)+dlo;
return sign+dhi+slo;
}else{
return sign+slo;
}
}
Run Code Online (Sandbox Code Playgroud)
这很可能就是您所需要的。
| 归档时间: |
|
| 查看次数: |
1869 次 |
| 最近记录: |