精华内容
参与话题
问答
  • Bigint

    2020-11-28 16:13:01
    <p>Bigint for Janet implementation proposal <ul><li>added core/int64 & core/uint64 bigint boxed types with basic arithmetic and logic methods.</li><li>added (u)int64 typed arrays back.</li></ul>该...
  • BigInt

    2018-04-20 17:00:10
    参考 http://www.cnblogs.com/studynote/p/3445398.html #include &lt;iostream&gt; #include &lt;time.h&...class BigInt { public: //BigInt(); BigInt(const char*); BigIn...

    参考 http://www.cnblogs.com/studynote/p/3445398.html

    #include <iostream>
    #include <time.h>
    
    using namespace std;
    
    class BigInt {
    public:
        //BigInt();
        BigInt(const char*);
        BigInt(unsigned int n = 0);
        BigInt(const BigInt&);
        BigInt& operator=(const BigInt&);
        BigInt operator + (const BigInt& other) const;
        void print(FILE* F = stdout) const;
        ~BigInt() {
            delete[] digits;
        }
    private:
        char* digits;
        unsigned ndigits;
        BigInt(char* d, unsigned n) {
            digits = d;
            ndigits = n;
        }
        friend class DigitStream;
    };
    
    void BigInt::print(FILE *f) const {
        for (int i = ndigits - 1; i >= 0; --i) {
            fprintf(f, "%c", digits[i] + '0');
        }
    }
    
    BigInt::BigInt(const BigInt& n) {
        unsigned i = n.ndigits;
        digits = new char[i];
        ndigits = i;
        memcpy(digits, n.digits, i);
    }
    
    BigInt& BigInt::operator=(const BigInt& n) {
        if (this != &n) {
            BigInt tmp(n);
            swap(tmp.ndigits, ndigits);
            swap(tmp.digits, digits);
        }
    
        return *this;
    }
    
    BigInt::BigInt(unsigned n) {
        char d[3 * sizeof(unsigned) + 1];
        char *dp = d;
        ndigits = 0;
        do {
            *dp++ = n % 10;
            n /= 10;
            ndigits++;
        } while (n > 0);
        digits = new char[ndigits];
        for (register int i = 0; i < ndigits; ++i) {
            digits[i] = d[i];
        }
    }
    
    BigInt::BigInt(const char* digitString) {
        size_t n = strlen(digitString);
        if (n != 0) {
            ndigits = n;
            digits = new char[n];
            for (int i = 0; i < n; ++i) {
                digits[i] = digitString[n - 1 - i] - '0';
            }
        }
        else {
            ndigits = 1;
            digits = new char[ndigits];
            digits[0] = 0;
        }
    }
    
    BigInt BigInt::operator+(const BigInt& n) const {
    
        size_t maxDigits = max(ndigits, n.ndigits) + 1;
        char carry = 0;
        char* sumPtr = new char[maxDigits];
        BigInt sum(sumPtr, maxDigits);
    
        for (int i = 0; i < max(ndigits, n.ndigits); ++i) {
            *sumPtr = carry;
            if (i < ndigits) {
                char tmp = digits[i];
                *sumPtr += digits[i];
                tmp = *sumPtr;
                int a = 0;
            }
            if (i < n.ndigits) {
                char tmp = digits[i];
                *sumPtr += n.digits[i];
                tmp = *sumPtr;
                int a = 0;
            }
            if (*sumPtr >= 10) {
                carry = 1;
                *sumPtr -= 10;
            }
            else {
                carry = 0;
            }
            ++sumPtr;
        }
    
        if (carry > 0) {
            *sumPtr = carry;
        }
        else {
            sum.ndigits = max(ndigits, n.ndigits);
        }
        return sum;
    }
    
    void test() {
        clock_t start = clock();
    
        BigInt b(10);
        for (int i = 1; i <= 1; ++i) {
            b = b + 1;
        }
        b.print();
        clock_t end = clock();
        cout << endl << static_cast<double>(end - start) / CLOCKS_PER_SEC << endl;
    }
    
    int main(int argc, _TCHAR* argv[])
    {
    
        test();
        _CrtDumpMemoryLeaks();
        cin.get();
        return 0;
    }
    展开全文
  • bigint

    千次阅读 2017-05-23 15:17:07
    最近使用MySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结:使用整数数据的精确数字数据...

    最近使用MySQL数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结:

    使用整数数据的精确数字数据类型。

    bigint

    从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。

    P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数

    int

    从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。

    smallint

    从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。存储大小为 2 个字节。

    tinyint

    从 0 到 255 的整型数据。存储大小为 1 字节。

    注释

    在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。

    在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。

    只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。

    int(M) 在 integer 数据类型中,M 表示最大显示宽度。在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并无任何关系。和数字位数也无关系 int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。

    展开全文
  • BigInt Support

    2021-01-07 10:02:56
    <div><p>Node.js v10.4.0 started official support of type <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt">BigInt</a>. And any client of ...
  • BigInt Arbitrary

    2020-11-29 16:39:10
    <p>Until BigInt support lands in TypeScript, we can use <a href="https://github.com/bitjson/bitcoin-ts/blob/61fef0c54d19f202280c5121db0b8d30a5803e07/src/types/bigint.d.ts#L6">a placeholder type like ...
  • Bigint codec

    2021-01-10 01:49:13
    <p>No <code>bigint</code> codec. <h3>Desired Behavior <p>Having a <code>bigint</code> codec available, like there's for other primitives (<code>string, <code>number, etc.). <h3>Suggested Solution ...
  • BigInt.js

    2020-12-22 10:08:30
    RSA所需js文件 BigInt.js
  • bigint search

    2020-12-26 05:53:11
    <div><p>when searching for <code>bigint the expected first match should be -> F/FL/FLORA/bignum-0.32.tar.gz looks like we have another search index issue. <p>If we look at -> ...
  • BigInt implementation

    2021-01-01 00:47:46
    <div><p>Followed instructions provided to begin work on BigInt class</p><p>该提问来源于开源项目:ProAlgos/ProAlgos-Cpp</p></div>
  • mysql bigintbigint unsigned

    千次阅读 2019-04-14 14:49:00
    -------------------------------以下是个人根据网上翻阅加个人理解总结结果...mysql 表中数据类型和存储过程都有bigint类型和bigint unsigned CREATE TABLE `testbigint` ( `testbigint1` bigint(20) NOT NULL...

    -------------------------------以下是个人根据网上翻阅加个人理解总结结果-------------------------------

    mysql 表中数据类型和存储过程都有bigint类型和bigint unsigned

    CREATE TABLE `testbigint` (
      `testbigint1` bigint(20) NOT NULL DEFAULT '0',
      `testbigint2` bigint(20) unsigned NOT NULL DEFAULT '0'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    可以看出,bigint  unsigned是可以创建的。但是之前陷入误区以为没区别,是因为使用navicat for mysql这个工具无符号在下边显示的,并不会在数据类型处显示,如图:

     

     

    可以看出,数据类型处是不显示bigint unsigned类型的,在下方会显示有无符号选项。

    转载于:https://www.cnblogs.com/workharder/p/10705143.html

    展开全文
  • TypeScript BigInt

    2020-04-10 12:13:11
    TypeScript BigInt 本节介绍的 bigint 数据类型是用来表示那些已经超出了 number 类型最大值的整数值,对于总是被诟病的整数溢出问题,使用了 bigint 后将完美解决。 1. 慕课解释 bigint是一种基本数据类型...

    TypeScript BigInt

    本节介绍的 bigint 数据类型是用来表示那些已经超出了 number 类型最大值的整数值,对于总是被诟病的整数溢出问题,使用了 bigint 后将完美解决。

    1. 慕课解释

    bigint 是一种基本数据类型(primitive data type)。

    JavaScript 中可以用 Number 表示的最大整数为 2^53 - 1,可以写为 Number.MAX_SAFE_INTEGER。如果超过了这个界限,可以用 BigInt来表示,它可以表示任意大的整数。

    2. 语法

    在一个整数字面量后加 n 的方式定义一个 BigInt,如:10n 或者调用函数 BigInt()

    const theBiggestInt = 9007199254740991n
    const alsoHuge = BigInt(9007199254740991)
    const hugeString = BigInt("9007199254740991")
    
    theBiggestInt === alsoHuge // true
    theBiggestInt === hugeString // true
    

    代码解释:

    第 1-3 行,分别是三种表达整数 9007199254740991 的方式,方式不同含义相同,所以完全相等。

    BigInt 与 Number 的不同点:

    • BigInt 不能用于 Math 对象中的方法。
    • BigInt 不能和任何 Number 实例混合运算,两者必须转换成同一种类型。
    • BigInt 变量在转换为 Number 变量时可能会丢失精度。
    const biggest = Number.MAX_SAFE_INTEGER
    
    const biggest1 = biggest + 1
    const biggest2 = biggest + 2
    
    biggest1 === biggest2 // true 超过精度
    

    代码解释:

    第 1 行,声明了一个 number 类型最大值的变量 biggest,对于 number 类型来说,这个就是最大精度。

    第 3-4 行,最大精度就是这个容器已经完全满了,无论往上加多少都会溢出,所以这两个值是相等的。

    而使用 BigInt:

    const biggest = BigInt(Number.MAX_SAFE_INTEGER)
    
    const biggest1 = biggest + 1n
    const biggest2 = biggest + 2n
    
    biggest1 === biggest2 // false
    

    代码解释:

    第 1 行,声明了一个 bigint 类型的变量 biggest

    第 3-4 行,bigint 类型就是用来表示那些已经超出了 number 类型最大值的整数值,也就是这个容器还没满,在此基础上加上两个不同的值,其结果不相等。

    3. 类型信息

    使用 typeof 检测类型时,BigInt 对象返回 bigint:

    typeof 10n === 'bigint'         // true
    typeof BigInt(10) === 'bigint'  // true
    
    typeof 10 === 'number'          // true
    typeof Number(10) === 'number'  // true
    

    代码解释:

    typeof 操作符返回一个字符串,表示未经计算的操作数的类型,用来判断基础数据类型。

    第 1-2 行,两个书写方式都是 bigint 类型,所以相等。

    第 4-5 行,两种书写方式都是 number 类型,所以相等。

    4. 运算

    BigInt 可以正常使用 +-*/**% 符号进行运算:

    const previousMaxSafe = BigInt(Number.MAX_SAFE_INTEGER)  // 9007199254740991n
    
    const maxPlusOne = previousMaxSafe + 1n                  // 9007199254740992n
    
    const multi = previousMaxSafe * 2n                       // 18014398509481982n
    
    const subtr = multi – 10n                                // 18014398509481972n
    
    const mod = multi % 10n                                  // 2n
    
    const bigN = 2n ** 54n                                   // 18014398509481984n
    

    Tip: 当使用 / 操作符时,会向下取整,不会返回小数部分:

    const divided = 5n / 2n                                   // 2n, not 2.5n
    

    5. 比较 与 条件

    Number 和 BigInt 可以进行比较:

    0n === 0 // false
    
    0n == 0 // true
    
    1n < 2  // true
    
    2n > 1  // true
    
    2 > 2   // false
    
    2n > 2  // false
    
    2n >= 2 // true
    

    条件判断:

    if (0n) {
      console.log('条件成立!');
    } else {
      console.log('条件不成立!'); // 输出结果
    }
    
    0n || 10n    // 10n
    
    0n && 10n    // 0n
    
    Boolean(0n)  // false
    
    Boolean(10n) // true
    
    !10n         // false
    
    !0n          // true
    

    代码解释:

    后面会有一节介绍 Truthy 与 Falsy,这里先简单提下。除了明确的 true 和 false 两个 boolean 类型外,JavaScript 可以在需要用到布尔类型值的上下文中使用强制类型转换将值转换为布尔值。

    比如 0 是假,10 是真。那么,同样的,0n 是假,10n 是真。

    6. 小结

    本小节介绍了 BigInt 类型相关知识,由于在 Number 与 BigInt 之间进行转换会损失精度,建议:

    • 不要在两种类型之间进行相互转换。
    • 仅在值可能大于 2^53 - 1 时使用 BigInt
    展开全文
  • BigInt

    2019-07-21 21:19:00
    持续维护中,根据需求更新。 struct BigInt { int l, a[23333], base; BigInt() { l = 0, base = 10; memset(a, 0, sizeof(a)); } BigInt Trans(int x) { BigInt y; while...
  • Add bigint type

    2021-01-04 02:34:07
    <div><p>This patch adds a bigint type to WebIDL with the following properties: - bigint corresponds directly to BigInt - The conversion from JS is based on ToBigInt, namely it throws on Number. - ...
  • Subclassing BigInt question

    2020-12-28 12:37:53
    m not sure if it is possible to subclass BigInt. If I'm no wrong, based on BigInt constructor, we should throw TypeErrror if newTarget is not undefined. So, if we have: <pre><code> class B extends...
  • Support BigInt?

    2020-12-25 17:26:18
    <p><code>d3.interpolate(BigInt(5), BigInt(15))(0.5)</code> throws a TypeError: Cannot convert a BigInt value to a number </li><li> <p>BigInt64Array and BigUint64Array (typed arrays) could be supported...
  • RFP: BigInt

    2020-12-03 00:32:34
    msg/blink-dev/vIVL6eDQKf0/WEfVYnyRDQAJ">noted</a> that, although has been developing a BigInt implementation for SpiderMonkey (as an employee of Igalia, as part of partnership Bloomberg), it has not ...
  • add BigInt tests

    2020-11-28 17:27:01
    <div><p>These are tests for the <a href="tc39/proposal-bigint">BigInt proposal</a></p>该提问来源于开源项目:tc39/test262</p></div>
  • <p>when reflecting from existing firebird table sqlalchemy reflects INTEGER fields as being BIGINT and BIGINT fields as NUMERIC</p><p>该提问来源于开源项目:sqlalchemy/sqlalchemy</p></div>
  • About BigInt usage

    2020-12-05 13:46:07
    I am developing a module has some function get 64 bit integer as parameter, javascript side I sent as bigint, but native side I can not get the parameter with NAPI. I check lib, and BigInt is guarded ...
  • Safari & BigInt

    2021-01-08 11:28:54
    <div><p>Hi, ... Maybe somebody can elaborate on what the current state of BigInt support in Safari is. <p>Regards, M.</p><p>该提问来源于开源项目:mdn/browser-compat-data</p></div>
  • BigInt support?

    2020-12-04 12:23:48
    <div><p>I was wondering if there was any plan to support BigInt when available in the environment? <p>https://developers.google.com/web/updates/2018/05/bigint</p>该提问来源于开源项目:indutny/bn...
  • JS BigInt support

    2020-11-22 23:04:53
    <div><p>Hello! <p>Can you add BigInt support? <p>https://github.com/tc39/proposal-bigint</p> <p>Thanks!</p><p>该提问来源于开源项目:mtth/avsc</p></div>
  • <div><p>...<p>Optional <a href="https://github.com/tc39/proposal-bigint"><code>BigInt</code></a> encoders.</p><p>该提问来源于开源项目:datastax/nodejs-driver</p></div>
  • <div><p>This PR tries to resolve #42. <ul><li>Fixed to convert ...s bigint type to <code>BigInt</code>.</li></ul> <p>Please review🙏</p><p>该提问来源于开源项目:denodrivers/mysql</p></div>
  • <p>Suggestion: expose two <code>int8</code> types, one for <code>number</code> and one for <code>BigInt</code>. - Option 1: Call them <code>int8AsJsBigInt</code> and <code>int8AsJsNumber</code> so the...
  • <div><p>Currently, it test if <code>from</code> and <code>to</code> against type <code>bigint</code>. I would suggest to remove the <code>bigint</code> support in <code>Number.range</code>. If you ...

空空如也

1 2 3 4 5 ... 20
收藏数 15,803
精华内容 6,321
关键字:

bigint