如何在 dart/flutter 中声明 64bit unsigned int?

Posted

技术标签:

【中文标题】如何在 dart/flutter 中声明 64bit unsigned int?【英文标题】:How do I declare 64bit unsigned int in dart/flutter? 【发布时间】:2019-05-04 11:38:04 【问题描述】:

对于一个应用程序,我需要一个 64 位无符号整数。查看 dart 文档,我不知道如何确切地声明一个。

谁能告诉我这是怎么做到的?我将在按位运算中使用这个“64bit unsigned int”。

【问题讨论】:

【参考方案1】:

Dart 没有原生无符号 64 位整数。

对于许多操作,您可以只使用int 所在的有符号 64 位整数,并将其解释为无符号。这是相同的位。但是,这不适用于除法。 (如果是用于网络,那么 int 是一个 javascript 编号,你需要做一些完全不同的事情。

最简单的通用方法是使用BigInt,并在对其进行任何操作后使用toUnsigned(64)

【讨论】:

我的理解是,在 64 位有符号 int 中,其中一位是为符号保留的,只有 63 位可用于存储值。我需要将所有 64 位用于值。 我的观点可能不是很好,即 bits 是相同的。有符号的 64 位整数不为符号保留位,它是 2 的补码表示,其中设置了最高有效位会使数字为负,但模 2^64 它仍然与相同的无符号解释相同位。对于许多操作,结果与那些 64 位被解释为有符号还是无符号无关。最后,如果你想打印结果,或者你想划分或做右移,这将很重要。如果需要,请使用BigInt 谢谢,看来我必须使用BigInt,因为我需要使用轮班。 我同意。当 Dart 得到 >>> 操作符后,你应该也可以处理无符号班次了,但还没有。 简而言之,我们必须使用int?【参考方案2】:

只需使用fixnum

您可以使用Int64() 轻松创建int64

【讨论】:

以上是关于如何在 dart/flutter 中声明 64bit unsigned int?的主要内容,如果未能解决你的问题,请参考以下文章

Dart/Flutter 中用于 FHIR 资源的 Json oneOf

flutter - 如何在 dart/flutter 中收听流值

flutter - 如何在Dart/Flutter中将某些元素从一个Map复制到新Map中?

如何在 dart/flutter 中解码 json 数组?

如何在 Dart/Flutter 中读取本地图像文件的字节数?

如何在 Dart / Flutter 中使用另一个文件的函数?