http://www.leemon.com/crypto/BigInt.js
我正在使用 leemon bigint.js 库
我要为http://smart2.qred.fi/js/jknc.js编写一些 c# 等效类
我很困惑我应该为这一行写什么 c#
var bigInteger = new BigInt(convert);
这样我就可以使我的 c# 类正确。
我要为此http://www.jknc.eu/RFcalculator编写 c# 类,这是需要用 c# http://smart2.qred.fi/js/jknc.js编写的 JS 文件,我写类但无法获得我通过创建者网站检查的写入结果。
我写了这个函数
public string jknc_calculate_creditor_reference(string text)
{
//var bigInteger=new BigInt( convert_text_to_digits(text+'RF00') );
BigInteger biginteger = new BigInteger(Convert.ToInt16(convert_text_to_digits(text + "RF00")));
//$('integer_calculate').innerhtml=biginteger.tostring();
//var mod = bigint_mod(biginteger, new bigint(97));
//var y = bigint_number(mod);
//BigInteger big = new BigInteger(1222222);
BigInteger mod;
BigInteger.DivRem(biginteger, new BigInteger(97), out mod);
var x = 98 - mod;
var result = "";
//$('x').innerhtml=x;
//$('y').innerhtml=y;
if (x < 10)
{
result = "0" + x;
}
else
{
result = Convert.ToString(x);
}
//$('result').innerhtml=result;
var newstr = text.Replace(" ", ""); //remove white space
string complete_result = "rf " + result + " " + format_string(newstr);
return complete_result;
//$('complete_result').innerhtml='rf '+result+ " "+format_string(newstr);
}
对于 JS 文件
function jknc_calculate_creditor_reference(text) {
var bigInteger = new BigInt(convert_text_to_digits(text + 'RF00'));
//$('integer_calculate').innerHTML=bigInteger.toString();
var mod = bigint_mod(bigInteger, new BigInt(97));
var y = bigint_number(mod);
var x = 98 - y;
var result = "";
//$('x').innerHTML=x;
//$('y').innerHTML=y;
if (x < 10) {
result = '0' + x;
} else {
result = x;
}
$('result').innerHTML = result;
var newStr = text.replace(/\s/g, '');
$('complete_result').innerHTML = 'RF ' + result + " " + format_string(newStr);
}
并且有这个脚本的参考
http://www.onicos.com/staff/iz/amuse/javascript/expert/BigInt.txt
但是我的函数没有给出正确的结果,因为我无法修复 BigInt js 库。