标签: unsigned-long-long-int

Java相当于unsigned long long?

在C++中,我喜欢访问64位无符号整数,via unsigned long long int或via uint64_t.现在,在Java中,long是64位,我知道.但是,他们签了名.

是否有一个unsigned long(long)可用作Java原语?我该如何使用它?

java primitive unsigned unsigned-long-long-int

104
推荐指数
5
解决办法
21万
查看次数

Django ORM能否以可靠的后端无关方式存储无符号的64位整数(又名ulong64或uint64)?

我见过的所有文档都暗示你可能会这样做,但是没有任何正式的w/r/t ulong64/uint64字段.在这个领域,有一些现成的选择看起来非常有前途:

  • BigIntegerField ......几乎,但签了名;
  • PositiveIntegerField......怀疑地看起来像32位; 和
  • DecimalField...一个用python decimal类型表示的固定指针,根据文档 - 当被剔除时,可能会变成类似迂腐和缓慢的数据库字段,即DECIMAL或NUMERIC PostgreSQL类型.

......所有这一切看起来像他们可能存放一些这样的.除了他们将会承诺,就像休·格兰特描绘的每一个rom-com角色一样.

我的主要标准是它与Django支持的后端一起工作,没有任何if postgresql (...) elif mysql (...)类型的特殊情况废话.之后,需要速度 - 这是视觉数据库应用程序中的模型字段,它将索引图像派生数据(例如感知哈希和提取的关键点功能),允许按照这些图像的内容进行排序和分组.

所以:有没有一个很好的Django扩展或应用程序,它提供了一些PositiveBigIntegerField适合我的目的?

而且,除非:如果有一种简单可靠的方法来使用Django的库存ORM存储无符号的64位整数,我想知道它.看,我不是二元神童; 我必须在纸上做两个补充 - 所以如果你的这种方法涉及一些有点变化的诡计,请不要犹豫,解释它是什么,即使它明显打击你.提前致谢.

python django orm django-models unsigned-long-long-int

33
推荐指数
1
解决办法
5926
查看次数

(lldb)以十六进制打印无符号长整型

我正在尝试调试我的Objective-C程序,我需要以unsigned long long十六进制打印我的变量.我正在使用lldb调试器.

short以十六进制打印,您可以使用:

(lldb) type format add --format hex short
(lldb) print bit
(short) $11 = 0x0000
Run Code Online (Sandbox Code Playgroud)

但是,我无法让它发挥作用unsigned long long.

// failed attempts:
(lldb) type format add --format hex (unsigned long long)
(lldb) type format add --format hex unsigned long long
(lldb) type format add --format hex unsigned decimal
(lldb) type format add --format hex long long
(lldb) type format add --format hex long
(lldb) type format add --format …
Run Code Online (Sandbox Code Playgroud)

debugging hex objective-c unsigned-long-long-int lldb

13
推荐指数
2
解决办法
8387
查看次数

在PHP中使用long int

我正在尝试这个,但我无法存储大的价值

$var = rand(100000000000000,999999999999999);
echo $var; // prints a 9 digit value(largest possible)
Run Code Online (Sandbox Code Playgroud)

如何获得理想的价值?

php int unsigned-long-long-int

12
推荐指数
3
解决办法
5万
查看次数

Swift中Double的无符号长龙

我以前在Objective-C中使用以下内容:

double currentTime = CFAbsoluteTimeGetCurrent();

// self.startTime is called before, like     
// self.startTime = CFAbsoluteTimeGetCurrent();

double elapsedTime = currentTime - self.startTime;

// Convert the double to milliseconds
unsigned long long milliSecs = (unsigned long long)(elapsedTime * 1000);
Run Code Online (Sandbox Code Playgroud)

在我的快速代码中,我现在有:

let currentTime: Double = CFAbsoluteTimeGetCurrent()
let elapsedTime: Double = currentTime - startTime

let milliSecs: CUnsignedLongLong = elapsedTime * 1000
Run Code Online (Sandbox Code Playgroud)

但是我得到的错误是double无法转换为CUnsignedLongLong有意义的错误.有没有办法像Objective-C一样投射它?有没有解决的办法?

double unsigned-long-long-int swift

12
推荐指数
2
解决办法
3万
查看次数

打印unsigned long long int值类型返回奇怪的结果

我在使用printf函数打印类型值时遇到问题unsigned long long int

我不知道出了什么问题.我在Windows 7 Professional 64位上使用Dev-Cpp 4.9.9.2和Visual Studio 2010 Professional(我知道它不是C编译器,但无论如何,想要尝试).为了显示,我使用了%llu修饰符(根据你如何printf一个unsigned long long int(unsigned long long int的格式说明符)?)但是我也尝试了I64d没有效果......


首先,我只是想打印的最小值和最大值unsigned long long int(使用ULONG_MAX来自limits.h)

printf("unsigned long long int: \n%llu to %llu \n\n", 0, ULONG_MAX);
Run Code Online (Sandbox Code Playgroud)

返回:

unsigned long long int:18446744069414584320 to 1580552164021 (Dev-Cpp)

unsigned long long int:18446744069414584320 to 0 (Visual Studio)


然后我尝试使用printf打印两个零

printf("unsigned long long int: \n%llu to %llu \n\n", 0, 0);
Run Code Online (Sandbox Code Playgroud)

返回:

unsigned long long int:0到1580552164021 (Dev-Cpp) …

c syntax printf unsigned-long-long-int

11
推荐指数
2
解决办法
1万
查看次数

隐式转换:以下警告是否有效?

这个问题C++运算符(和其他几个)中的隐式类型转换规则

如果其中一个是long long unsigned int,则另一个被提升为long long unsigned int

但是,如果我在MSVC下执行以下操作:

unsigned int a = <some expression>;
unsigned long long b = a << 32ULL;
Run Code Online (Sandbox Code Playgroud)

第二行生成以下警告:

warning C4293: '<<': shift count negative or too big, undefined behavior
Run Code Online (Sandbox Code Playgroud)

32ULL是一个64位无符号值,因此根据隐式转换规则,这应该意味着a转换unsigned long long为.因此,我将64位值移位32位,显然是一个定义明确的操作.

MSVC是否有漏洞或者我的逻辑存在缺陷?

c++ bit-shift unsigned-long-long-int integer-promotion language-lawyer

10
推荐指数
1
解决办法
251
查看次数

为什么带有unsigned long long参数的std :: bitset构造函数未标记为显式?

标准库类模板std::bitset<N>有一个构造函数(C++ 11及更高版本,unsigned longC++ 11之前的参数)

constexpr bitset(unsigned long long) noexcept 
Run Code Online (Sandbox Code Playgroud)

与许多最佳实践指南相反,此单参数构造函数未标记为explicit.这背后的理由是什么?

c++ explicit-constructor unsigned-long-long-int bitset implicit-conversion

9
推荐指数
1
解决办法
2604
查看次数

为什么对齐long long union成员比包含union/struct更大?它是否正确?

这个问题开始,人们可以开始相信联盟的一致性不低于其个体成员的最大一致性.但我对long longgcc/g ++中的类型有问题.完整的示例可以在这里找到,但这里是我的问题的相关部分:

union ull {
  long long m;
};

struct sll {
  long long m;
};


int main() {
#define pr(v) cout << #v ": " << (v) << endl
   pr(sizeof(long long));
   pr(__alignof__(long long));
   pr(sizeof(ull));
   pr(__alignof__(ull));
   pr(sizeof(sll));
   pr(__alignof__(sll));
};
Run Code Online (Sandbox Code Playgroud)

这导致以下输出:

sizeof(long long): 8
__alignof__(long long): 8
sizeof(ull): 8
__alignof__(ull): 4
sizeof(sll): 8
__alignof__(sll): 4
Run Code Online (Sandbox Code Playgroud)

为什么union成员的对齐大于包含union的对齐?

[UPDATE]

根据基思的回答,对齐在这里是错误的.但我测试了以下内容,似乎alignof 告诉我们真实情况.看到:

union ull {
  long long m;
};
long long a;
char b; …
Run Code Online (Sandbox Code Playgroud)

c++ g++ memory-alignment unsigned-long-long-int unions

8
推荐指数
1
解决办法
1249
查看次数

奇怪的浮点行为与没有额外变量,为什么?

当我在VC++ 2013中运行以下代码时(32位,无优化):

#include <cmath>
#include <iostream>
#include <limits>

double mulpow10(double const value, int const pow10)
{
    static double const table[] =
    {
        1E+000, 1E+001, 1E+002, 1E+003, 1E+004, 1E+005, 1E+006, 1E+007,
        1E+008, 1E+009, 1E+010, 1E+011, 1E+012, 1E+013, 1E+014, 1E+015,
        1E+016, 1E+017, 1E+018, 1E+019,
    };
    return pow10 < 0 ? value / table[-pow10] : value * table[+pow10];
}

int main(void)
{
    double d = 9710908999.008999;
    int j_max = std::numeric_limits<double>::max_digits10;
    while (j_max > 0 && (
        static_cast<double>(
            static_cast<unsigned long long>(
                mulpow10(d, j_max))) != …
Run Code Online (Sandbox Code Playgroud)

c++ floating-point double unsigned-long-long-int visual-c++

8
推荐指数
2
解决办法
303
查看次数