问题标签 [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.
c - GCC ARM C 编译器不尊重 -std=c99 用于 %llx printf 格式化代码
我正在尝试使用以下内容打印一些 64 位无符号整数:
我得到这个回应:
如果我将格式化字符串更改为 %016lx,我会收到使用错误类型的编译警告,并且它只打印低 32 位:
我的编译器选项中有 -std=c99 字符串,它应该强制执行 ll 选项,对吗?
作为参考,这是最新版本的 Silicon Labs 的 Simplicity Studio IDE 附带的 arm-none-eabi-gcc 编译器 (v4.7.3)。
c - 打印 INT 的最大值
我尝试打印程序中的最大值int
。使用以下代码::
我得到的输出是::2147483647
但是,当我将我的printf
语句更改为printf("%lld",INT_MAX);
我的输出时,就会变成577732524332023807
. INT_MAX
值应该在的范围内long long int
,那为什么它不能转换INT_MAX
成正确的数字long long int
。
感谢您提前提供任何帮助。
c++ - 是否存在将 double 转换为 long long 的优雅方式?
我想得到integer part
。double
但是这种方式对我不起作用:
这是由于事实,double integer
可能有e-notation
。例如,3.41e10
是正确的双数。
我的测试用例是:
- 双 -> 长长
- 234343.0 -> 234343
- 3.41e10 -> 34100000000
- 19.999999999 -> 19
- -10.1 -> -10
- -0.0000001 -> 0
有什么漂亮的方法可以完成我的任务吗?
c - 使用递归的 C 程序需要得到优化和修复
我正在解决一项任务 - 用户正在输入 3 个数字,a, b, c
. 目标是找出是否可以c
求和a
和b
。在每个步骤中都允许添加a
tob
和b
to a
。我需要确定输入的数字是否可行。输入的数字在0
和之间10^18
。下面是我的代码,用递归完成。
解决任务的示例a=4 b=6 c=38
:
a=4 b=10
a=14 b=10
a=14 b=24
a=38 b=24 print YES
我下面的代码对于低数字做得很好,但我认为我正在失去与更大数字的战斗......我添加了一些评论来说明什么部分正在做什么。
我需要帮助的是,我需要它更好、更快地工作,我不知道如何进一步优化它。
c - 用 unsigned int 大小声明一个 long long 数组
当我在将数组声明为时遇到分段错误时,我正在做一个问题:
在哪里,
findMax 是以下类型的函数:
我该如何解决这个问题?
c++ - 为什么不会自动分配 long long 类型的值?
使用 auto,我创建了一个变量号并使用 cin.get 来获取值。我使用此代码来执行此操作:
似乎即使我输入了一个超过 2147483647 的数字,该值仍然被分配为 int 类型。为什么是这样?如果数字超过最大 32 位 int 值,不应该自动分配 long 类型的值吗?
c++ - 打印 long long int 时出错
我是 C++ 新手。我编写了一个使用unsigned long long int
数据类型的程序。
我无法正确打印变量
这是代码:
标准输入:
预期输出:
观察到的输出:
c - 无法在 C 中打印长整数
我知道这个主题有很多主题,但没有一个能帮助我解决我的问题。我在 Code::Blocks 上工作(在“属性>项目构建选项>编译器设置>其他选项”中使用选项 -std=c99)并且以下代码没有给出预期的输出:
事实上,我在终端中获得了“值:0”。我该如何解决这个问题?
当我写 30 而不是 33(所以 val 是一个整数)时,我得到了正确的答案。我也尝试过 %lld 但这没有帮助。
thrust - 推力忽略长长
Thrust 将long long int视为long int。这是一个演示程序:
输出是:
第一个 1410065408 应该是 10000000000。
我这样编译它:
nvcc -arch=compute_30 -std=c++11 longlongb.cu -o longlongb
c++ - Long long is 8 bytes, meaning?
I've read the answers to the question of why sizeof(long long)
is 8 on most systems, but I'm still not sure how to interpret the meaning of them.
One of the reasons given is that there is a lot of code 'out there' which assumes that sizeof(long long) <= sizeof(size_t)
. That makes sense. Then there are all kinds of views on architecture conventions and brands, etc. I don't even want to get into those debates about the history of the convention. There are also reasons given that long long
can be any size according to standard, but I think that is not really what concerns me.
What I want to know is how to interpret the difference now between the fact that sizeof(long long)
returns 8 but that a long long
actually is 16. Should it be interpreted as a historical remnant that applies only to the sizeof
operator, or is there an underlying address pointer associated with that fact, so that operations on a long long
are executed in 8 byte increments?
Sizeof (signed) long v4: 8 Value of (x at 2147483647)v4: 7fffffff
Sizeof long long v5: 8 Value of (x at 9223372036854775807)v5: 7fffffffffffffff