问题标签 [bigint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1275 浏览

sql - 使用 bigint datetimes 选择早于 X 天的记录

我将日期存储为 bigint 在我的表中,我正在尝试选择超过 30 天的记录。我在 SO 和 Google 上看到了大量与这个问题相关的问题,但我没有找到我需要的东西。

这是我所拥有的,这似乎非常低效:

据我了解,它将 bigintmytstamp字段转换为时间戳,以便将其与“30 天前”时间戳进行比较。它对表中的每条记录执行此操作:(。将当前时间戳 - 30 天转换为一次 bigint 似乎更有效,然后将其与我所有的 bigint 日期进行比较。

我的 SQL 技能很弱,所以放轻松:)。谢谢您的帮助。

0 投票
1 回答
4000 浏览

sql-server - SQL Server varbinary bigint 与 BitConverter.ToInt64 值不同

我将我的long值保存在 SQL Server 表中varbinary(max)

现在我需要在 T-SQL 查询中使用该值,但是当我尝试获取值时:

它返回不同的数值。例如,如果我保存-8588797048854775808在 .NET 中,则在 T-SQL 中我得到33802181122903688

请告诉我有什么问题?这个问题有解决办法吗?

0 投票
0 回答
968 浏览

division - 编码 BigInt 部门

问题:BigInt 除法的一个好的和有效的算法?

尝试:多项式长除法,整数除法(溢出余数),二进制长除法(好不好?不确定,这就是我在下面的帖子中的内容),商猜测除法(大商减法太多)。

我一直在尝试编写 BigInt 部门的代码。我最新的算法使用二进制除法,但我认为这不是最好的方法。

所以我正在寻找一些关于可能存在哪些算法的想法;)。

我正在使用的语言不支持传递诸如数组或各种数据类型之类的项目。我被整数和布尔值和全局数组以及在函数顶部声明的局部数组所困。

我正在使用 32768 的字长来提高速度,恰好是 2^15。正因为如此,我可以快速有效地转换为基数 2 并返回,这就是我决定尝试二进制除法算法方法的原因。

我的第一种方法在某些情况下会导致剩余部分溢出,但速度非常快。我的下一个方法是多项式长除法的想法。我也尝试了商的想法,尽管它在非常大的数字上会失败,因为涉及的减法太多。总的来说,我认为蹩脚的二进制除法算法可能是最好的选择;|。

数字在除数和余数数组的末尾变得更小。它们在股息数组的开头较小。

最终答案存储在 binaryDividendBuffer 中,大小为 binaryDividendBufferSize(商),余数大小为剩余大小(余数)。这东西适用于 0 个错误,但我觉得它真的很糟糕:o。

代码:

0 投票
3 回答
2553 浏览

mysql - 如何在mysql中将bigint更改为int,表具有外键

我最近注意到我的一个数据库中有几个 bigint 类型字段可以替换为“int”类型。问题是数据库已经在线并在使用中,并且还有外键在起作用,所以当我尝试更改离线数据库中的数据类型时,mysql 不会让我这样做并产生错误消息:“#1025 - 重命名 (...)" 时出错。

那么如何在保持外键满意的同时更改这些字段呢?(而不是清除现有的数据库!)

0 投票
3 回答
88 浏览

javascript - javascript ints 评估不正确

所以我正在编写一个javascript应用程序,基本上如果一个数字大于另一个我想交换它们的值:

这可以正常工作直到某一点,但是一旦数字开始变大,即:

然后表达式将评估为 false 并且不会执行任何操作。有谁知道问题是什么?谢谢!

0 投票
4 回答
18192 浏览

mysql - mysql 使用外键将 int 列更改为 bigint

我想将数据库中某些主键列的数据类型从 INT 更改为 BIGINT。以下定义是说明问题的玩具示例:

现在,当我尝试执行以下命令之一时:

我遇到了一个错误

显示 INODB 状态输出:

我猜外键定义会阻止更改任一侧的列类型。解决此问题的简单方法是删除外键定义、更改列并重新定义外键。有更好的解决方案吗?

0 投票
3 回答
717 浏览

c++ - 运算符==重载

我正在为学校做一个项目,我需要创建一个 bigint 类,到目前为止它有 4 个要求。

1.) 编写一个方法来编写一个 bigint,每行最多打印 80 位数字。

2.) 编写一个方法来比较两个 bigint 是否相等。它应该返回一个布尔值。

3.) 编写一个方法来将 bigint 初始化为您提供的 int 值 [0, maxint]。

4.) 编写一个将 bigint 初始化为 char[] 的方法。

我认为我的 2 和 3 是正确的,但是我在比较两个 bigint 时遇到了麻烦,我希望有人能引导我朝着正确的方向前进,如何将打印限制为每行 80 位。

到目前为止,这是我的代码:

.h 文件

这是实现文件:

顺便说一句,我不想​​为我一小时前刚开始的​​作业找到答案。我整天都在为此工作,最后我屈服并寻求帮助。

0 投票
1 回答
3152 浏览

c++ - Bigint + 运算符

我正在做一个 bigint 项目,我很困惑为什么我的加法运算符在测试用例上不能正常工作。

我排除了 .h 文件,因为它可能没有必要。

大整数.cpp

Main.cpp(测试用例)

在这个测试用例中,程序在 assert(result == "10"); 处中止。

但是如果我有相同的测试用例,除了 assert(result == 10); 程序运行。

谁能说出为什么?

0 投票
1 回答
1188 浏览

database - Liquibase 列数据类型乱七八糟

我有一个生产中的现有数据库。我已经使用 liquibase 导出了架构,并创建了一个基本脚本,以便在为新客户安装时使用。Liquibase 将我在 mssql 中的所有 id 列导出为 BIGINT,但实际上它们在数据库中是 NUMERIC。

现在,当我添加一个为旧表创建新表和前八键的升级脚本时,我收到一个错误:列与外键中的引用列的数据类型不同。

发生的情况是,仅升级(并且不会进行全新安装)的客户将在数据库中具有 NUMERIC 列,并且它将与新的 BIGINT 列发生冲突。

问题是我应该怎么做,因为对于每种数据库类型,它也是不同的类型。我搞不清楚了

0 投票
3 回答
3388 浏览

java - 实现 BigInt.add()?

我正在尝试从 BigInteger 类中实现我自己的 add() 方法版本。到目前为止,当给定两个相同长度的数字时,它可以完美地工作,但是当给定两个不同长度的数字时,它无法编译(索引超出范围)。解决这个问题的最佳方法是什么?

如果有帮助,当两个值相加为 10 和 1 时的输出为 20。