-1

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 库。

4

1 回答 1

2

至于 BigInt 类,有预制库。您将需要修改不匹配的算术 API。

.NET 4.0 添加对 System.Numerics.dllassembly 的引用以获取对 System.Numerics.BigInteger 的访问权限。

.NET 2.0 IntX 是一个任意精度整数库 http://intx.codeplex.com/

于 2012-11-05T11:55:55.827 回答