问题标签 [int64]
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.
c++ - 使用 64 位类型?
我正在为编译器编写一些哈希函数,并且__int64
经常使用该数据类型。该编译器旨在在不同的操作系统上得到支持(到目前为止也是如此)。我知道这__int64
是一种可以由大多数主要 C++ 编译器为我的目标系统编译的类型,所以这不是问题。我正在使用散列函数来使大字符串更小、更快地进行比较,它们在支持 64 位的操作系统上创造了奇迹;但是在 32 位操作系统上是否会有足够大的性能下降来抵消这些好处?我可以使用 32 位整数,但这样会大大降低散列函数的有效性。
编辑:这是自定义代码,非常简单。第一个哈希函数从 12 个字母数字(包括下划线)字符生成一个唯一的 64 位 int。然后一个类通过创建 64 位哈希的地址链表和重载比较运算符来处理超过 12 个字符的哈希。重载的比较被短路并向下比较地址链表。我已经在我的机器上进行了测试,以比较随机生成大散列(100 - 300 个字符)的速度与它们自身(最坏情况下的情况)相比,它被证明比字符串比较更快。为了更好地模拟生成哈希的开销,我还运行了预先生成的大哈希的比较测试,并与它们本身进行比较。这一切都是在关闭代码优化的情况下运行的。使用约 10 亿个哈希比较与约 10 亿个字符串比较,哈希花费了大约 16% 的时间。不过,这一切都在 64 位环境中。我没有 32 位机器来运行测试
c++ - 为什么我不能直接将 __int64 变量设置为 -2500000000?
该程序是在 WindowsXP 机器上用 VC++ 6.0 编写的。
如果我尝试将 __int64 变量直接设置为 -2500000000,则会将其截断为 32 位值并采用二进制补码。
此时 testval 等于 1794967293(110 1010 1111 1101 0000 0111 0000 0000 二进制)。
当我将变量设置为 2500000000 然后乘以负一时,它可以工作:
变量 testval 等于 -2500000000(1001 0101 0000 0010 1111 1001 0000 0000 二进制)。
有任何想法吗?谢谢。
c# - Int64 不等于 C# 中的 long 吗?
我一直在通过SqlCeConnection在 C# 中使用 SQL 和数据库。我一直在使用ExecuteReader来读取读入 Long 的记录 ID 的结果和BigInt值。
今天我一直在使用基于 COUNT 的语句('SELECT COUNT(*) FROM X')的 SQL 语句,并且一直在使用ExecuteScalar来读取这些单值结果。
但是,我遇到了一个问题。我似乎无法将值存储到我一直在使用的 Long 数据类型中。我可以将它们存储到 Int64 中。
我一直在使用 BigInt 作为记录 ID,以获得最大的潜在记录数。
因此,一个 BigInt 8 字节是一个 Int64。Long 是否不等于 Int64,因为两者都是 64 位有符号整数?
因此,为什么我不能将 Int64 转换为 Long?
错误是:
指定的演员表无效。
我可以将 BigInt 读入 Long。这不成问题。我无法将 SQL COUNT 读入很长的内容。
COUNT 返回一个 Int (Int32),所以问题实际上是将 Int32 转换为 long。
c++ - 我是否需要 64 位处理器才能使用 64 位数据类型
我有几个问题:
我是否需要 64 位处理器才能使用 64 位数据类型(__int64 或 int64_t)?
int64_t 的“t”是什么意思?
从哪个版本的 GCC 和 VCC 开始支持数据类型?
64 位数据类型只是将数据长度加倍还是还有其他一些事情在幕后发生?
c++ - 如何设置 int64 的较低或较高值?
我知道我可以通过以下方式获得更高的 int 64 值:
但是我该如何设置呢?
我试过这个,但它说“表达式必须是一个可修改的值”:
我需要保留其他值,(如果我设置较高的值,则应保留较低的值)。
c++ - 乘以 __int64
有人可以(详细)向我解释如何将两个 __int64 对象相乘并检查结果是否适合 __int64。
注意:不要使用任何编译器或处理器相关的例程。
delphi - 对 Delphi 6 的巨大文件支持?(更换系统模块?)
我在与巨大的固定长度记录数据文件交互时遇到问题。该文件的大小超过 14 GB。当我看到System.Filesize()
函数的返回值远小于大文件中的实际记录数时,我首先注意到一个问题,考虑到文件中的字节数和每条记录的长度。(给定调用期间指定的记录大小,System.Filesize 返回无类型文件中的记录数Reset()
。它不返回文件中的字节数)。System.Filesize()
我将其归结为 Longint 而不是 Int64的返回类型。
GetFileSizeEx()
我通过自己调用和计算记录数来解决最初的问题。不幸的是,BlockRead()
尝试访问文件中偏移量在文件深处的记录时也会失败。我猜想再次有正在使用的值在代码中的某处溢出。
那里是否有可以处理大型文件的 Delphi 6 替代模块,并且可以替代系统单元文件 I/O 调用?如果可以的话,我会尽量避免自己动手。
c++ - 标准::环礁与 VC++
我一直在使用std::atoll
fromcstdlib
将字符串转换为int64_t
带有 gcc 的字符串。该功能似乎在 Windows 工具链上不可用(使用 Visual Studio Express 2010)。什么是最好的选择?
我也有兴趣转换strings
为uint64_t
. 取自 的整数定义cstdint
。
iphone - _int64 没有命名类型
在我的pch文件中,我有以下定义:
当我构建我的应用程序时,出现错误
它说 _int64 没有命名 type。可能是什么问题?
sql-server-2008 - 如何在 ADO.NET 中将 SQL Server 日期时间转换为 C# int64?
我想从 SQL Server 中的 datetime 字段中读取数据并将其存储为 int64,因为 datetime 在 SQL Server 中存储为 64 位。我会做类似的事情吗?