问题标签 [unsigned-long-long-int]
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.
swift - Unsigned Long Long 来自 Swift 中的 Double
我曾经在 Objective-C 中使用以下内容:
在我目前的快速代码中:
但是,我得到一个错误,即 adouble
无法转换为 a CUnsignedLongLong
,这是有道理的。有没有办法像在 Objective-C 中一样投射它?有没有解决的办法?
encryption - 将 17 位数字加密/压缩为更小的 9(或更少)位数字
我有一个无符号长整数(8 字节),它保证为 17 位,我希望它存储在 int(4 字节)中,最大为 9 位。基本上我想加密或压缩号码,以便我可以在不丢失任何信息的情况下检索号码。
c++ - 10^10 - 10^11 范围内的数字应该是什么数据类型?
假设我有以下代码来循环数字,如下所示:
现在,根据某些条件检查,我需要i
在范围之间打印一个:3*pow(10,p)<= i <6*pow(10,p)
代码工作正常upto p=8
,然后变得非常缓慢,编译器似乎卡住了p=9,10,11
。我猜问题在于使用正确的数据类型。这里应该使用什么正确的数据类型?
此循环的目的是在范围之间找到合适的数字。体面数字的条件如下: 1) 3、5 或两者都作为其数字。不允许使用其他数字。2) 3 出现的次数能被 5 整除。 3) 5 出现的次数能被 3 整除。
注意:我unsigned long long int
在这里使用过(0 to 18,446,744,073,709,551,615)
。我在32 位机器上运行。
c++ - 原始运算符的数学错误
我对使用内置运算符的原始类型有疑问。float
我所有的运算符都适用于除and之外的所有数据类型(un)signed long long int
。
为什么即使乘以一也是错误的?此外,为什么+10
和给出与、、和-10
相同的数字。+1
-1
/1
*1
选择该数字461168601
是因为它适合 maxfloat
和 max signed long long int
。
运行以下代码并得到以下输出:
下面的代码可以在这里运行。
c++ - Unsigned long long wrong given value after add
I have two strings to add. Strings is HEX values. I convert strings to long long, add and after I back to string. But this operation no working good.
Code:
I received
Anyone can explain me this magic? How can I fix it?
Back to hex value by
c - C如何从无符号整数中检索精确的双精度值(精度)
我有一个校验和,我正在尝试对其进行逆向工程,我已经知道在我知道最初用于创建校验和的原始初始值之后如何保持校验和生成。
到目前为止,我知道校验和是使用双数据类型数学方程生成的。
计算出的校验和的最终值是一个无符号整数,但在此之前它会从 double 转换为 unsigned long long aka (unsigned __int64)。
我要做的是将一个无符号整数恢复为双数据类型中的相同值,以进入撤消校验和以检索原始初始值的下一步。
当校验和在这里计算时,它以双精度数据类型生成的值。
3083570000.3115764
它创建了一个校验和0xB7CB8B50
我不认为这是一个有损的对话,所以即使它从 8 字节双倍转换回 4 字节整数校验和,也没有真正丢失。为什么?因为该double
值始终是通过乘以创建的4294967295.0
,我认为这只是为了消除尾随的 4 个字节,有点像移位。
因此,double
我要检索的值必须除以4294967295.0
才能将原始双精度值精确地恢复到最后一位。
问题是我不能正确划分它,因为它不是 100% 准确到最后一个小数点。我知道浮点数学不是 100% 准确的 IEEE 浮点废话,但我不在乎我只是试图以与最初创建相同的方式来扭转这一点。
输出
假设原始校验和双倍是0.71794958809146792
0.71794958809146792 * 4294967295.0 = 3083570000.3115761849416764
数据包中发送的答案是0xb7cb8b50
如果我手动将无符号整数0xb7cb8b50
转换为unsigned __int64
手动,它应该看起来像这样0x00000000b7cb8b50
在代码中生成的原始双精度应该如下所示,我在将其附加到数据包之前使用相同的密钥重新创建相同的条件以首先生成校验和,它应该看起来像这样
Real ANSWER = 3083570000.3115764
所以
0x00000000b7cb8b50 should equals = 3083570000.3115764 double
我的反向代码看起来像这样
上面的代码有几个小数位是错误的。
我如何获得额外的,.3115764
也是我的问题。
string - Arduino我如何打印无符号长长数据
我正在尝试unsigned long long
在串行监视器上打印数据,但
Serial.println()
由于不是字符串变量而无法工作。
所以我在互联网上搜索转换unsigned long long
为String
. 我想出了一些解决方案,但没有一个有效。例如;
此代码不起作用。我也试过"%lu"
了"%lld"
。
我想看看我的pipe
价值是什么。在这种情况下,我想12345ABCD9
在串行监视器上查看。还有其他方法吗?我在等你的回复。非常感谢你。
编辑:
当我使用"%lu"
我在屏幕上看到878361817
变量时(这不是我想要的)。但其他他们只是 null ,空
c - 格式化 unsigned long long 会导致整数溢出
该unsigned long long
类型对我来说没有按预期工作。这是我的简单代码:
我得到以下输出:
usedgcc
是作为 mingw 的一部分安装的,版本为 4.8.1。
c++ - Project Euler 任务 #8,代码在某个点后开始返回错误答案
我在https://projecteuler.net/problem=8的任务中遇到了某种问题 (从 1000 个数字字符串中找到 13 个连续数字的最高乘积),直到某个时候,程序给了我可预测的结果然后该函数返回一个非常接近unsigned long long int范围的数字。它发生的点取决于读取的值,例如,如果数字串主要由 8s 和 9s 组成,那么它会比只有 5s 和 6s 更快地发生。为什么会这样?
该程序打印出当前最高的产品和当前包含在数组中的所有数字。它看起来像这样: 错误
c++ - 奇怪的 unsigned long long int 行为
我使用 unsigned long long int 进行一些计算,但是
给出输出:40900000000000000
和这个
给出输出:40900000000000008
现在我不知道发生了什么我尝试删除i64
尝试打印4*pow(10, 16)
给出正确的结果40000000000000000
也尝试40900000000000011
直接打印,它打印正确的结果。它适用于 10^14 的幂,但之后它开始表现得很奇怪。
有人可以解释发生了什么吗?