问题标签 [long-long]

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 投票
2 回答
10425 浏览

C ++中的“Int”乘法与“long long”结果

我试图找到 a 的平方int。我的代码如下所示:

结果应该是6049417284 但是当我检查它显示的输出时1754449988。我在做什么错误? long long应该能够存储结果,但为什么我得到不同的值?

0 投票
0 回答
2052 浏览

在 LP64/ILP64/LLP64 数据模型下选择 'long' 与 'long long' 作为 64 位类型?

long我试图了解使用或选择内置 64 位数据类型的要求long long。我无法理解longvs的类型等效性和对齐要求long long

long在 LP64/ILP64/ LLP64long long数据模型下选择 64 位类型时,最佳实践或标准是什么?


这里有一些相关的问题。它们完全涵盖了其他主题,例如sizeof(long) <= sizeof(long long),但它们并没有完全处理等价或对齐期望。它们还严重依赖非内置类型,例如uint64_t.


背景信息是类似于下面的代码来选择一个内置的 64 位类型来使用:

i686 和 ARMv7 及以下版本可以使用typedef my_u64 unsigned long long.

第一个问题案例

在 x86_64 (AMD64) 机器上,如果 typedef my_u64 unsigned long有效(由于LP64),则会导致编译错误:

第二个问题案例

在 Aarch64 (ARM64) 机器上,如果 typedef my_u64 unsigned long long有效(修复 x86_64 错误),则会导致编译错误:


0 投票
1 回答
629 浏览

如何将长长的 C 宏桥接到 Swift?

在 Foundation 中有一个 C 宏NSURLResponseUnknownLength定义为long long

由于宏桥接到 Swift 的方式,这个常量可以在 Objective-C 应用程序中访问,但不能在 Swift 应用程序中访问。如何使这些宏对 Swift 可见?

我尝试将宏包装在桥接头中的全局 C 函数中:

但是访问getNSURLResponseUnknownLength()会导致Undefined symbols for architecture构建错误。

0 投票
5 回答
2885 浏览

Visual Studio 中的 long long 值

我们知道 -2*4^31 + 1 = -9.223.372.036.854.775.807,可以存储在 long long 中的最低值,正如这里所说:整数类型可以在 C++ 中存储的值范围。所以我有这个操作:

为什么它显示 -9.223.372.036.854.775.808 而不是 -9.223.372.036.854.775.803?我正在使用 Visual Studio 2015。

0 投票
2 回答
2932 浏览

如果在我的机器上 sizeof(long) == sizeof(long long),为什么它们不是同一类型?

如果我运行:

在我的机器(和 Coliru)上,我得到

不仅如此std::is_same<>;期望实例化int64_t失败的翻译单元,因为我只为另一个翻译单元编译intlong long int在另一个翻译单元中编译,尽管这一切都发生在同一台机器上。

为什么这些类型不一样?我的意思是,表现出与typedef's 相同类型的行为?

0 投票
0 回答
566 浏览

当我将数据数组从浮点类型转换为长长时,Diab 编译器面临未定义符​​号链接器问题

我编写了一个小示例代码并在 GCC 和 DIAB 编译器中执行。

GCC 编译器的输出是:

0.000000 0 1.256000 1 2.512000 2 3.768000 3 5.024000 5 6.280000 6 7.536000 7 8.792000 8 10.048000 10 11.304000 11

DIAB 编译器中的问题是:

dld.exe:警告:文件 'sfpfftoll.o(C:\WINDRI~2\diab\580~1.0-3\PPCVLEES\libimpfp.a)'中的未定义符号 '__asr64' dld.exe:警告:未定义符号 '__lsl64 '在文件 'sfpfftoll.o(C:\WINDRI~2\diab\580~1.0-3\PPCVLEES\libimpfp.a)' dld.exe: 错误: 未定义符号 - 没有输出写入 make.exe: *** [..\output\bin\xxxxxxx.elf] 错误 1

是否有任何解决方法可以将浮点数组转换为 long long int 数组?我尝试使用指针,但仍然面临相同的链接器问题。

0 投票
1 回答
180 浏览

在 C 中检查溢出 long long

我想检查变量 from在 C 语言中fgets是否溢出。ling long int我试过这个:

但它不起作用,因为long long int会收到太多的数字;它回到LLONG_MIN+过剩(我认为是这样)。

0 投票
4 回答
4242 浏览

3 * 1000000000 作为 int 溢出,但变量是 long long。为什么?

我有一个简单的 c++ 应用程序,它执行以下计算

如果我写下每个计算的结果,我会得到以下输出:

那么为什么第二次计算会失败呢?据我所知,它在 long long 类型的范围内(calcThree 更大......)。

我在 Windows 10 上使用 Visual Studio 2015。提前致谢。

0 投票
1 回答
834 浏览

在 C 中扫描 long long int 时出现分段错误

我正在尝试编写一个简单的程序来计算两个数字的公因数。我在扫描第二个数字时遇到分段错误(核心转储)。我不明白故障在哪里?

0 投票
1 回答
544 浏览

Visual Studio 是否正式支持 __int64 的“%lld”格式说明符?

根据本文档 https://msdn.microsoft.com/en-us/library/tcxf1dw6(v=vs.140).aspx程序员应该使用%lld__int64变量printf long long变量%I64d

根据这个文件https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx __int64只是long long的另一个名字。

那么为什么第一个文档不直接说%lld也可以用于__int64呢?VS 团队是否认为未来__int64会与long long不同?我无法想象如果他们关心向后兼容性会发生这种情况......

谢谢